首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts中nested标签的简略应用(转帖)

2012-11-08 
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 代码
  1. ///其他代码 ?? <html:form?action="PersonAction"> ??
  2. <nested:nest?property="person> ? name:?<nested:text?property="name"/><br/> ?
  3. sex:????<nested:text??property="sex"??/><br/> ?? </nested:nest> ??
  4. <html:submit/> ?? </html:form> ??
  5. //其他代码??

?其中 <nested:nest> 理解就是定义一个类层次,它也可以嵌套使用,当业务类中还包含其他业务类时就可以使用它的嵌套,当使用嵌套时如果想显式知道嵌套的层次可以利用nested 标签的??<nested:writeNesting> ?标签进行输出。比如现在我们再加一个业务类 Address ,类中数据元素为: private String country;? private? String province;? 然后在 业务类 Person 中加上??????????????????? private? Address? add=new Address();? 结合<nested:writeNesting> 后的.jsp 为:

java 代码
  1. //其他代码 ?? <html:form?action="/PersonAction"> ??
  2. <nested:nest?property="person"> ?? <nested:message?key="use_nested.jsp.form.name"/><nested:text?property="name"?size="18"/><br/>??
  3. <nested:message?key="use_nested.jsp.form.sex"/><nested:text?property="sex"?size="18"?/><br/>??
  4. <br/> ?? <nested:nest?property="add"> ??
  5. current?nesting?is:?<nested:writeNesting/><br/> ?? <nested:message?key="use_nested.jsp.form.country"/><nested:text?property="country"?size="18"/><br/>??
  6. <nested:message?key="use_nested.jsp.form.province"/><nested:text?property="province"?size="18"/><br/>?? </nested:nest> ??
  7. </nested:nest> ?? <html:submit><bean:message?key="use_nested.jsp.form.submit"/></html:submit> ??
  8. </html:form> ?? //其他代码 ??

其中 <nested:writeNesting/> 出会输出 person.add 表明当前类层次

当你输出表单数据时 还可以定义一个顶层级别的 javaBean,这时候就利用 nested 的 <nested:root> 标签,比如要输出上个表单元素时,顶层级别就是 PersonForm ,其他则与上面是一样,如下:

java 代码
  1. ///其他代码 ?? <jsp:useBean?id="PersonForm"?type="nestedtag.PersonForm"?scope="request"?/> ??
  2. <nested:root?name="PersonForm"> ?? ????<nested:nest?property="person"> ??
  3. ????<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/> ??
  4. ????????<nested:nest?property="add"> ?? ????????<nested:message?key="use_nested.jsp.form.country"/><nested:write?property="country"/><br/>??
  5. ????????<nested:message?key="use_nested.jsp.form.province"/><nested:write?property="province"/><br/>?? ????????</nested:nest> ??
  6. ????</nested:nest> ?? </nested:root> ??
  7. ///其他代码??

nested 的其他子标签则与 html子标签和 bean子标签的功能类似,就不用介绍了。

最后说明的是,利用nest 实现的功能也可以不用 nest 实现,只不过写 property 是把完整的属性路径写全就行了,因为比较简单看了下面的代码就明白了,

java 代码
  1. ///其他代码 ?? <html:form?action="/PersonAction"> ??
  2. <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/>??
  3. <bean:message?key="use_nested.jsp.form.province"/><html:text?property="person.add.province"?size="18"/><br/>?????
  4. <html:submit><bean:message?key="use_nested.jsp.form.submit"/></html:submit> ?? </html:form> ??
  5. ///其他代码??

热点排行