- 浏览: 175790 次
- 性别:
- 来自: 苏州
最新评论
-
jsruth:
学习了,请教下使用C3P0连接池,配置好hibernate.c ...
Hibernate 连接池配置(C3PO and proxool) -
oliveevilo:
试了一下后面的mysqldump 也没成功,求指教
MySql 导入和导出xml文件实例 -
oliveevilo:
我使用你这里说的第一种方法为什么不行,我的是mysql 5.6 ...
MySql 导入和导出xml文件实例 -
luofuyong:
很管用,谢谢哦
PLSQL Developer 注册 -
zl0828:
很全,很详细。搞不懂为什么没有人评论支持呢。我来加一把劲,支持 ...
DisplayTag
Action和jsp的开发其实就是对Struts标签的运用.掌握标签的熟练程度决定了开发效率.初学者往往对某个数据表示或数据获取,束手无策.一个简单的问题浪费一两天时间也就不足为怪了.导致整个开发进度延后.外面的struts书籍介绍标签和数据传输原理都比较简单,下面我对标签技术和数据传输原理,进行全方位多角度的剖析.希望对各位有所帮助.以此为模版,将大大提高开发效率.以sample为机能名称.
①画面上有一text框,显现内容为某一数据表中的某一字段.那我们该如何设置和得到此数据呢?
SampleJsp:
SampleForm.java: // form文件名必须和jsp中标签的name对应
String name; // 必须和jsp中该项目的property一样
public String getName() { return name; }
public void setName(String name) { this.name = name;}
变量和方法名,不可以顺意.变量abcd,那方法名就是setAbcd和getAbcd.注意大小写.
jsp中的项目必然全部在form里面有所表示,当然反过来,form里的项目在jsp中不一定全部表示(可能有辅助动作的对象或验证)
SampleAction.java
public ActionForward start(ActionMapping mapping,
ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
SampleForm form = (SampleForm) argForm;
String name = ………………other codes for get name from db
// set name
form.setName(name);
// now text will show the name
}
public ActionForward save(ActionMapping mapping,
ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
SampleForm form = (SampleForm) argForm;
// get name
String name = form.getName();
………………other codes for save name
}
jsp和form对应,action操作form,form其实起了传输数据的作用.这就是struts标签的核心原理.得到数据和设置数据没问题了,剩下的工作也就得心应手了.
②再看一个处理标签的方法.画面上是一个明细一览表示(表).表示的是数据表user的相关数据(id,name).
SampleJsp:
logic:present是逻辑判断,sampleForm中userList为空(无数据或null),下面的东东不显示.
logic:iterate是逻辑循环,userList有几条数据,就循环几次.
是lable标签,显示user这个对象(entity)的id属性.或者说显示数据表user中的一条记录中的id这个列.
User.java(就是entity,因为和业务密切,高达不开发,切记切记不可顺意修改.遇到设计有问题,QA日本)
String id;
public String getId() { return id; }
public void setId(String id) { this.id = id; }
String name;
public String getName () { return name; }
public void setName (String name) { this.name = name; }
看到这,是否觉得面熟啊,好象和FORM一样,但有点不一样,不一样在哪里,看下去后,自己感悟吧.
SampleForm.java:
List userList;
public List getUserList () { return userList; }
public void setUserList (List userList) { this.userList = userList; }
form只要这些,那你会问,id和name,struts如何能得到呢?你不是说过jsp必须和form一样对应吗?不错,一一对应是肯定的. UserList信息已经包含了一切,还需要定义id和name吗?至于struts如何得到数据,那就看下面的action是如何处理的吧.
SampleAction.java
public ActionForward start(ActionMapping mapping,
ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
SampleForm form = (SampleForm) argForm;
ArrayList userList = new ArrayList();
User user = new User();
user.setId(1);
user.setName(“name1”);
userList.add(user);
User user = new User();
user.setId(2);
user.setName(“name2”);
userList.add(user);
// set userList
form.setUserList(userList);
// now table will show
}
一切搞定.是不是很简单,但估计你还是有点晕.你还是想问我,id和name到底是如何设置的?
Action设置了userList就够了,它包含够多的信息了. struts看见了你设置了userList.它就知道了这个list里面都user(entity),useruser(entity)里面不是有很多get,set方法吗?
再看下下面的东东.
id=”user”,和name="user" 对应了,明白啥意思吗?.就象循环指明索引一样. property="id"就是要显示的这个索引对应的内容.Struts就是这样来认id和name的.
③接下来,看一个加强版的table例子,在显示的明细一览,每一行前面加一个radio框,让用户选择哪个user.进行删除操作.
SampleJsp:
sampleForm.java:
String selectedUserId;
public String getSelectedUserId () { return selectedUserId; }
public void setSelectedUserId(String selectedUserId) {
this.selectedUserId = selectedUserId;
}
SampleAction.java
public ActionForward delete(ActionMapping mapping,
ActionForm argForm, HttpServletRequest req, HttpServletResponse res)
throws Exception {
SampleForm form = (SampleForm) argForm;
String selectedUserId = form.getSelectedUserId();
// get user by selected id
User user = getUser(selectedUserId);
// delete user
}
radio框. propertys值对应form里的对象.value值是该行radio对应的user中的id(数据表中user的id是主键),那么当用户选中任何一个radio,struts通过form得到propertys值,就可以得到选中哪个user了,然后进行相应操作.
设置哪个user被选中,一是通过用户选择,没的说.二,通过程序控制,如果进入初期画面,我要让user.id = ‘3’的radio被选中,只要在初期Action中form.selectedUserId(“3”);一切搞定,就一句话,进入初期画面时, user.id = ‘3’的radio被选中了.
注意以下标签
下面发挥想象一下以下标签啥意思?
能看出来什么?
User包含object1,object2包含object3,….objectN-1包含objectN,objectN有id属性.
看出来了吗?灵活运用,想象一下,各个entity和form,action该如何写?
④接着介绍一下,checkbox是使用.画面有一排checkbox,如何设置和得到数据呢?先看一个简单点的.
第二个框未选中,其他选中.form里面对应三个String chechbox1,chechbox2, chechbox3;下面来个复杂点的,多选择对话框multibox
SampleJsp中:
SampleForm中:
private String userList[] = new String[0];
public String[] getUserList () { return userList;}
public void setUserList(String[]userList) {this.userList = userList;}
private String selectedUsers[] = new String[0];
public String[] getSelectedUsers () {return selectedUsers;}
public void setSelectedUsers (String[]selectedUsers) {this.selectedUsers = selectedUsers;}
如果我们在初期时在action里对bean赋值:
userList = { User(”1”,”name1”), User(”2”, ”name2”), User(”3”,”name3”) }
selectedUsers = {“1”,”3”}
那画面选中第一第三个选择框.
用户修改选择框,选择了第二,第三个,那么在action里取bean的值
String selectedItems[] = new String[list.getSize()];
selectedItems = form.getSelectedItems();
for ( int i = 0 ; i < selectedItems.length ; ++i ){
LOGGER.debug( "selected " + i + ": " + selectedItems[i]);
}
Selected 0 : 2
Selected 1 : 3
selectedUsers = {“2”,”3”}
⑤画面上有一user表,每条数据前面有个button,对应一条记录,如何确定选中那条数据呢??
SampleJsp:
SampleAction.java
int index = Integer.parseInt(form.getSelectUserIndex());
通过一个隐藏变量,得到选中第几条数据,然后就能做相应处理.
⑥上面都是通过form和jsp传输数据的.还有session也能让jsp显示数据.但如果我做为设计者,是不提倡这样做的.为什么就不说了.但日本以前的设计很可能会用到session和jsp传数据.那我就有必要讲一下如何用了?做为高达的设计者还是尽量不要用session和jsp沟通.
有个下拉列表框,里面显示所有用户名称.用session传数据.
SampleJsp:
<%pageContext.setAttribute("userList",(List) (FwThreadContext
.getAttribute("AllUser")));
%>
SampleForm.java:
String selectedUser;
Form里只要一个selectedUser,表示选择的user. 下拉列表框用session表示.
在action等地方设置了session的内容,那下拉列表框就能显示内容了.这里session名为AllUser, labelProperty="name"是下拉列表框显示的东东, property="id"是下拉列表框每条数据隐藏的东东.通过property="selectedUser"里得到选中那条数据
这里很简单就是把session名为UserName设置到Text框中.得的时候还是通过form中的name得到.
标签宝典:
1,lable
2,text
3,button
4,select
5,checkbox,multibox
6, 循环逻辑
7,if逻辑
发表评论
-
JAVA HotSwap
2011-08-23 17:37 3604Hotswap 是一个允许在运行状态下无限制的修改 ... -
项目中用到的JPA Annotation 之二:Inheritance
2011-06-29 20:35 963Target: Classes Defines th ... -
项目中用到的JPA Annotation 之一:DiscriminatorColumn
2011-06-29 19:58 1888Target: ClassesSpecifies the di ... -
解决MAVEN内存溢出
2011-05-18 15:34 1650解决Maven中OutOfMemory错误Windows环 ... -
EL 表达式不能解析
2011-03-30 15:44 1584今天学习spring的MVC框架,发现EL 表达式 ... -
Java 自带 MD5 加密
2010-08-25 10:22 2271package com.exigenservice.er ... -
JPDA:Java平台调试架构
2010-05-17 10:20 1347在无法访问运行中的实例时,调试一个Java ... -
配置log4j输出ibatis的SQL语句
2009-12-09 14:38 3078ibatis不像hibernate那样在配置文件中注明是否输出 ... -
Java try catch finally的执行顺序
2009-11-30 13:43 12679关于Java中try catch finally ... -
java 连接 Mysql,Oracle,MSSQL
2009-05-14 15:56 1603MySql: Class.forName(" ... -
Lucene检索文件(txt,jsp,html)
2009-02-05 21:47 2241Lucene检索文件包裹txt,jsp,html格式(如果是w ... -
java中的值传递和引用传递
2009-02-04 12:59 1229值传递:方法调 ... -
Serializable作用
2008-12-19 09:26 2554没有implements Serializable ... -
锚的用法
2008-12-15 13:34 1573链接有两种,一种是不同页面间的链接。另外一种是页内链接,我们一 ... -
清晰了解String操作
2008-10-25 07:49 1213我们来看一段再经典不过的程序: class StringTes ... -
细说java.util包
2008-10-23 10:09 998线性表,链表,哈希 ... -
浅析Java语言中两种异常的差别
2008-10-12 11:37 1156Java提供了两类主要的异 ... -
struts 2 标签之<s:tree/>和<s:treenode/>简单实例
2008-09-19 09:37 3094代码: <%@ page language=" ... -
struts2标签的定义文件 struts-tags.tld
2008-09-19 09:35 8856在工程中使用struts2标签 一、struts2标签定义文 ... -
DisplayTag
2008-09-08 14:02 1686用了一段时间的Display Ta ...
相关推荐
Struts标签是Apache Jakarta Struts框架中的一部分,用于简化Java Web应用程序开发中的视图层构建。Struts标签库提供了一组预定义的JSP标签,这些标签有助于开发者更有效地处理常见的Web开发任务,如表单处理、数据...
下面将详细阐述Struts2标签库的使用、功能和优势。 1. **Struts2标签库介绍** Struts2框架中的标签库是基于JSP标准标签库(JSTL)的扩展,它提供了一系列与动作、结果、表单和国际化相关的标签。这些标签能够帮助...
Struts标签 Struts标签Struts标签Struts标签Struts标签
struts2 标签库介绍(html)对Struts2的标签做了详细的介绍让你轻松掌握Struts2的标签。 STRUTS2学习文档.pdf 对Struts2的一些配置文件进行了详细的说明。 Struts2―表单验证validate(html)对validate的type属性...
STRUTS标签通常与ActionForm、ModelDriven等概念结合,可以更方便地处理表单提交、数据验证、国际化等功能。常见的STRUTS标签有`<s:form>`、`<s:textfield>`、`<s:textarea>`、`<s:submit>`等。 在VS2005中进行HTML...
1. **Struts标签库介绍** Struts标签库主要分为两个部分:逻辑标签和表单标签。逻辑标签用于处理页面跳转和控制流程,而表单标签则用于显示和处理用户输入的数据。 2. **逻辑标签** - `<logic:iterate>`:用于...
下面将对前三个标签库中的标签进行详细的介绍。 Bean Tags Bean Tags 是 Struts 中最基本的标签库,包含的标签可以用来创建 bean、访问 bean 和访问 bean 的属性。同时提供了依据 cookies、headers 和 parameters ...
本压缩包文件包含了关于Struts标签的详细解释和源码,非常适合学习和参考。 1. **HTML标签**: HTML标签主要用于生成常见的HTML元素,如表单元素(`<html:form>`)、文本输入(`<html:text>`)、复选框(`...
下面是对Struts标签的详细描述: 1. **Struts标签库介绍** Struts提供了多个预定义的标签库,如`struts-bean`, `struts-html`, `struts-logic`, 和 `struts-tiles`,这些库帮助开发者在JSP页面中处理常见任务,如...
"Struts标签参考"和"Struts标签手册"提供了详细的标签使用指南,涵盖了所有可用的标签、属性及其用法。开发者可以通过查阅这些手册,快速学习并掌握Struts标签的使用,提高开发效率。 总的来说,Struts标签是构建...
Struts标签库是Java Web开发中的一个重要组成部分,它极大地简化了开发者在JSP页面中处理业务逻辑和控制流程的工作。Struts是一个开源框架,最初由Apache软件基金会开发,旨在提供一个MVC(Model-View-Controller)...
Struts标签 大全
本文将从Struts2的安装、基本配置、关键组件和工作流程等方面进行详细介绍,帮助读者快速掌握Struts2的核心知识。 #### 二、Struts2环境搭建 首先,需要下载并解压**struts-2.1.6-all.zip**,这是Struts2 2.1.6...
本文将详细讲解Struts标签的使用及其常见HTML标签库,并指导如何在Struts框架中有效应用这些标签。 一、Struts标签的基本概念 Struts标签是基于JavaServer Pages (JSP) 的自定义标签库,它们是专门为Struts框架设计...
在“struts标签.txt”文件中,可能包含了更多关于Struts标签的详细用法和示例。这些标签能够简化JSP页面的编写,提高开发效率,使得业务逻辑和视图层的分离更加清晰。通过学习和理解这些标签,开发者可以更好地掌握...
以下是Struts框架的详细知识点: **MVC模式** - **模型(Model)**:模型是应用的核心部分,负责处理业务逻辑和数据管理。它通常由JavaBean组成,封装了业务对象和业务处理方法。 - **视图(View)**:视图是用户...
下面,我们将详细介绍 Struts2 标签库的使用。 4.1 通用标签 通用标签用来控制页面的执行过程,并从 Action 或值堆栈中取得数据。这些标签可以分为控制标签、数据标签和其他标签。 控制标签用来控制程序的执行,...
Struts标签是Apache Struts框架提供的...以上就是Struts标签的基本介绍,它们极大地简化了Struts2应用的视图层开发,提高了代码的可读性和维护性。通过熟练运用这些标签,开发者可以更高效地构建功能丰富的Web应用。
Struts标签库是Apache Struts框架的一部分,它提供了丰富的标签来处理常见的Web开发任务,如表单处理、显示数据、控制流程等。使用Struts标签,开发者可以避免在JSP页面中直接编写Java脚本,降低代码的复杂度。例如...
1. **Struts标签库介绍** - Struts标签库包括核心标签库(struts-tiles)和HTML标签库(struts-html),以及其他如逻辑标签库(struts-logic)、bean标签库(struts-bean)等。 - 核心标签库主要用于页面布局和...