struts中nested标签的简略应用(转帖)
struts中nested标签的简单应用(转帖)我感觉 nested 标签就是把表单直接对应到一个业务类对象,在FORM类中定
struts中nested标签的简单应用(转帖)
我感觉 nested 标签就是把表单直接对应到一个业务类对象,在FORM类中定义这个业务类对象就可,这个标签用起来也不难,而且还挺好用,
比如说有个 表单类PersonForm,业务类Person,在PersonForm中定义 Person person=new Person(); 注意这里用new分配空间,不能只是这样 Person person;???????????????? 在Person类中定义?private String name; private String sex;
那么在.jsp中表单部分如下:
java 代码
- ///其他代码 ?? <html:form?action="PersonAction"> ??
- <nested:nest?property="person> ? name:?<nested:text?property="name"/><br/> ?
- sex:????<nested:text??property="sex"??/><br/> ?? </nested:nest> ??
- <html:submit/> ?? </html:form> ??
- //其他代码??
?其中 <nested:nest> 理解就是定义一个类层次,它也可以嵌套使用,当业务类中还包含其他业务类时就可以使用它的嵌套,当使用嵌套时如果想显式知道嵌套的层次可以利用nested 标签的??<nested:writeNesting> ?标签进行输出。比如现在我们再加一个业务类 Address ,类中数据元素为: private String country;? private? String province;? 然后在 业务类 Person 中加上??????????????????? private? Address? add=new Address();? 结合<nested:writeNesting> 后的.jsp 为:
java 代码
- //其他代码 ?? <html:form?action="/PersonAction"> ??
- <nested:nest?property="person"> ?? <nested:message?key="use_nested.jsp.form.name"/><nested:text?property="name"?size="18"/><br/>??
- <nested:message?key="use_nested.jsp.form.sex"/><nested:text?property="sex"?size="18"?/><br/>??
- <br/> ?? <nested:nest?property="add"> ??
- current?nesting?is:?<nested:writeNesting/><br/> ?? <nested:message?key="use_nested.jsp.form.country"/><nested:text?property="country"?size="18"/><br/>??
- <nested:message?key="use_nested.jsp.form.province"/><nested:text?property="province"?size="18"/><br/>?? </nested:nest> ??
- </nested:nest> ?? <html:submit><bean:message?key="use_nested.jsp.form.submit"/></html:submit> ??
- </html:form> ?? //其他代码 ??
其中 <nested:writeNesting/> 出会输出 person.add 表明当前类层次
当你输出表单数据时 还可以定义一个顶层级别的 javaBean,这时候就利用 nested 的 <nested:root> 标签,比如要输出上个表单元素时,顶层级别就是 PersonForm ,其他则与上面是一样,如下:
java 代码
- ///其他代码 ?? <jsp:useBean?id="PersonForm"?type="nestedtag.PersonForm"?scope="request"?/> ??
- <nested:root?name="PersonForm"> ?? ????<nested:nest?property="person"> ??
- ????<nested:message?key="use_nested.jsp.form.name"/><nested:write?property="name"/><br/>?? ????<nested:message?key="use_nested.jsp.form.sex"?/><nested:write?property="sex"/><br/> ??
- ????????<nested:nest?property="add"> ?? ????????<nested:message?key="use_nested.jsp.form.country"/><nested:write?property="country"/><br/>??
- ????????<nested:message?key="use_nested.jsp.form.province"/><nested:write?property="province"/><br/>?? ????????</nested:nest> ??
- ????</nested:nest> ?? </nested:root> ??
- ///其他代码??
nested 的其他子标签则与 html子标签和 bean子标签的功能类似,就不用介绍了。
最后说明的是,利用nest 实现的功能也可以不用 nest 实现,只不过写 property 是把完整的属性路径写全就行了,因为比较简单看了下面的代码就明白了,
java 代码
- ///其他代码 ?? <html:form?action="/PersonAction"> ??
- <bean:message?key="use_nested.jsp.form.name"/><html:text?property="person.name"?size="18"/><br/>?? <bean:message?key="use_nested.jsp.form.sex"/><html:text?property="person.sex"?size="18"?/><br/>????? <br/>???? <bean:message?key="use_nested.jsp.form.country"/><html:text?property="person.add.country"?size="18"/><br/>??
- <bean:message?key="use_nested.jsp.form.province"/><html:text?property="person.add.province"?size="18"/><br/>?????
- <html:submit><bean:message?key="use_nested.jsp.form.submit"/></html:submit> ?? </html:form> ??
- ///其他代码??