writename="user"property="id"/>是lable标签,显示user这个对象(entity)的id属性.或者说显示数据表user中的一条记录中的id这个列.
User.java(就是entity,因为和业务密切,高达不开发,切记切记不可顺意修改.遇到设计有问题,QA日本)
Stringid;
publicStringgetId(){returnid;}
publicvoidsetId(Stringid){this.id=id;}
Stringname;
publicStringgetName(){returnname;}
publicvoidsetName(Stringname){this.name=name;}
看到这,是否觉得面熟啊,好象和FORM一样,但有点不一样,不一样在哪里,看下去后,自己感悟吧.
SampleForm.java:
ListuserList;
publicListgetUserList(){returnuserList;}
publicvoidsetUserList(ListuserList){this.userList=userList;}
form只要这些,那你会问,id和name,struts如何能得到呢?
你不是说过jsp必须和form一样对应吗?
不错,一一对应是肯定的.UserList信息已经包含了一切,还需要定义id和name吗?
至于struts如何得到数据,那就看下面的action是如何处理的吧.
SampleAction.java
publicActionForwardstart(ActionMappingmapping,
ActionFormargForm,HttpServletRequestreq,HttpServletResponseres)
throwsException{
SampleFormform=(SampleForm)argForm;
ArrayListuserList=newArrayList();
Useruser=newUser();
user.setId
(1);
user.setName(“name1”);
userList.add(user);
Useruser=newUser();
user.setId
(2);
user.setName(“name2”);
userList.add(user);
//setuserList
form.setUserList(userList);
//nowtablewillshow
}
一切搞定.是不是很简单,但估计你还是有点晕.你还是想问我,id和name到底是如何设置的?
Action设置了userList就够了,它包含够多的信息了.struts看见了你设置了userList.它就知道了这个list里面都user(entity),useruser(entity)里面不是有很多get,set方法吗?
再看下下面的东东.
iterateid="user"name="sampleForm"property="userList">
writename="user"property="id"/>
id=”user”,和name="user"对应了,明白啥意思吗?
.就象循环指明索引一样.property="id"就是要显示的这个索引对应的内容.Struts就是这样来认id和name的.
③接下来,看一个加强版的table例子,在显示的明细一览,每一行前面加一个radio框,让用户选择哪个user.进行删除操作.
SampleJsp:
presentname="sampleForm"property="userList">
iterateid="user"name="sampleForm"property="userList">
radioname="sampleForm"property="selectedUserId"value="<%=((jp.co.mhcb.obs.persis.entity.User)pageContext.getAttribute("user")).getId().toString()%>"/>
| writename="user"property="id"/> | writename="user"property="name"/> |
iterate>
present>
sampleForm.java:
StringselectedUserId;
publicStringgetSelectedUserId(){returnselectedUserId;}
publicvoidsetSelectedUserId(StringselectedUserId){
this.selectedUserId=selectedUserId;
}
SampleAction.java
publicActionForwarddelete(ActionMappingmapping,
ActionFormargForm,HttpServletRequestreq,HttpServletResponseres)
throwsException{
SampleFormform=(SampleForm)argForm;
StringselectedUserId=form.getSelectedUserId();
//getuserbyselectedid
Useruser=