知识大全 利用 Struts 实现动态控制表格大小(1)

Posted 表格

篇首语:逆水行舟用力撑,一篙松劲退千寻。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用 Struts 实现动态控制表格大小(1)相关的知识,希望对你有一定的参考价值。

利用 Struts 实现动态控制表格大小(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在Succeeding with Struts的前面安装部分 我间接提到了DynaForms在运行期内可以动态的控制表格大小 换句话说 就是能够根据需要得到 行 或者 行 或者 行长的表格 可能有点不明智 我把这种策略的实际实现作为一种练习留给了读者自己 在接下来的几个月内 我收到了几十个读者的请求 他们请求给出详细的实现细节 所以这个月我将用两种不同的方法来实现动态调整的表格   第一个方法就是我在前面的栏目中提到的那个方法 将尺寸参数留给DynaForm 的form property 属性来实现 为了演示详细过程 我们来看看一个非常简单的应用 添加关于不同Star Wars 演员的注释 在这个应用中我们感兴趣的关键事实是 演员的数量在表格配置中动态设定 而不是在struts config xml文件中动态设定   首先 我们先来看看struts config xml 文件     <?xml version= encoding= UTF ?>  <!DOCTYPE struts config PUBLIC //Apache Sofare Foundation//DTD Struts Configuration //EN                   config_ _ dtd ;>  <struts config>    <form beans>      <form bean name= dynamicArrayForm type= apache struts validator DynaValidatorForm >        <form property name= people type= demo Person[] />      </form bean>    </form beans>      <action mappings>    <action path= /setupForm type= demo SetupFormAction name= dynamicArrayForm scope= session         validate= false >      <forward name= success path= /displayForm jsp />    </action>      <action path= /processActorComments   type= demo ProcessFormAction       name= dynamicArrayForm scope= session   validate= false >      <forward name= success path= /displayForm jsp />    </action>  </action mappings>  </struts config>     如你所见 这是一个相当简单的配置文件 只定义了一个表格和两个动作 第一个动作 /setupForm 用来在初始显示之前配置表格 另一个动作 /processActorComments 用来处理用户输入的注释   在这个文件中有两个重要的事情需要注意 它们对于事态的发展很关键    people 表格属性定义为demo Person[] 类型(即demo Person的一个排列) 但不给出任何size 参数 这就为要创建的排列产生了一个占位符 但是没有任何例示的实排列    这两个动作将表格定义在会话期范围内 这是很关键的 因为用户在填写数值之后提交表格时 数值在动作执行之前已经填充到表格内了 这就意味着没有机会手动创建具有恰当空位数的排列 正如你在表格显示之前在SetupFormAction 类中看到的情况一样 换句话说 当表格提交时 必须已经有恰当的空位来接受表格值 唯一能保证这个的方法就是在会话期范围内就已经有了这个表格   基本上在Person bean 中是没有值的 他只是一个具有lastName firstName dateOfBirth gender 和ment字段的普通bean 源文件包括在WAR 文件内   现在我们来看看SetupFormAction 类 它在表格第一次显示之前调用     package demo;    /**   * Copyright James M Turner    * All Rights Reserved   *   * A Struts action that sets up a DynaForm which is globally scoped   */    import java io IOException;  import javax servlet ServletException;  import javax servlet *;    import apache struts action *;  import apache struts validator DynaValidatorForm;    public class SetupFormAction extends Action     public ActionForward execute(ActionMapping mapping ActionForm form HttpServletRequest request                    HttpServletResponse response)        throws ServletException IOException         DynaValidatorForm df = (DynaValidatorForm) form;      Person[] p = new Person[ ];      p[ ] = new Person();      p[ ] setDateOfBirth( / / );      p[ ] setLastName( Ford );      p[ ] setFirstName( Harrison );      p[ ] setGender( M );      p[ ] = new Person();      p[ ] setDateOfBirth( / / );      p[ ] setLastName( Fisher );      p[ ] setFirstName( Carrie );      p[ ] setGender( F );      p[ ] = new Person();      p[ ] setDateOfBirth( / / );      p[ ] setLastName( Hamill );      p[ ] setFirstName( Mark );      p[ ] setGender( M );        df set( people p);        return mapping findForward( success );           这一次也没有许多东西要看的 execute 方法要做的第一件事情 和任何基于DynaForm的动作所做的一样 就是将泛型ActionForm 类放到DynaValidatorForm内 这就使得我们可以在表格上使用get和set 方法 第二件事情就是 创建一个具有三个元素的类型Person 的排列 在这个方法中 尺寸是硬布线的 在实际应用中可以从数据库中选择一个尺寸 我们需要考虑的重要事情是排列应该在代码中创建 而不是由Struts引擎自己创建 这样行数可根据应用要求由代码随意指定   一旦排列已经确定 方法将创建三个Person 类实例并赋与数值 同样 在实际的应用中可通过一个循环来实现 这个循环不断地从数据库中读取行和填充表格行 最后 动作返回成功 导致Struts转移控制到displayForm jsp 页     <!     Copyright James M Turner     All Rights Reserved         >    <%@ taglib uri= /WEB INF/struts tld prefix= %>  <%@ taglib uri= /WEB INF/c tld prefix= c %>    <head>  <title>Star Wars Actor Fact Page</title>  </head>  <H ><center>Start Wars Actor Fact Page</title>  <:form action= /processActorComments >    <table border= width= % >      <tr><th>Last Name</th><th>First Name</th><th>Date of Birth</th><th>Comment</th></tr>      <c:forEach var= people items= $dynamicArrayForm map people >        <tr><td><c:out value= $people lastName /></td>          <td><c:out value= $people firstName /></td>          <td><c:out value= $people dateOfBirth /></td>          <td><:text name= people indexed= true property= ment /></td>        </tr>      </c:forEach>    </table>    <P/>    <:submit value= Update Comments />   </:form>    同样 这里也没有很多东西要看的 他与我们上一篇文章查看固定长度的行时的代码完全一样 该页迭代行(记住在JSTL中我们必须使用map 属性来获得到DynaForm 属性的访问) 显示演员的姓 名和出生日期 并提供文本域以便输入注释   当我们聚焦我们的浏览器合请求时 (假设你把struts war 文件放在你本地机器的Tomcat 内) 将会出现下列页面     Start Wars Actor Fact Page Last Name First Name Date of Birth Comment   Ford Harrison / /    Fisher Carrie / /    Hamill Mark / / cha138/Article/program/Java/ky/201311/28402

相关参考

知识大全 js动态创建表格,删除行列的小例子

这篇文章介绍了js动态创建表格删除行列的实例代码有需要的朋友可以参考一下 复制代码代码如下:cha138/Article/program/Java/JSP/201311/20196

知识大全 Excel表格中怎么制作带复选框的动态图表

Excel表格中怎么制作带复选框的动态图表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!Excel

知识大全 Java框架:Struts 的动态复选框

Java框架:Struts的动态复选框  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Strut

知识大全 基于Struts1.2的动态多文件上传

基于Struts1.2的动态多文件上传  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首先是we

知识大全 html 中表格的宽度 怎么控制

中表格的宽度怎么控制1,使用传统的方法<tablewidth=400><tr><tdwidth=100></td><tdwidth=100>

知识大全 excel表格里单元格插入图片,有什么方法能让图片自动适应单元格大小么,每次都调整图片大小很麻烦

excel表格里单元格插入图片,有什么方法能让图片自动适应单元格大小么,每次都调整图片大小很麻烦不行的。。虽然格片格式里有一个自动根据单元格来改变大小和位置。但不能实现和单元格一样的。因为你图片有估定

知识大全 2003版的电子表格转化为word文档形式后怎样调整格或者调整大小

请问一下:2003版的电子表格转化为word文档形式后怎样调整格或者调整大小?如果你用的第一种方法,插入后是一张矢量图片,鼠标点击后四个角落会有圆点,拖动圆点调节就好。如果是第二种方法直接复制的,那么

知识大全 .net中申请单动态添加实现方法及代码[1]

  一个申请单可以包含N个项目添加申请单时就需要动态加入代码了  动态Table表格<tableborder=width=%id=tabzxname=tabzxalign=centerclass

知识大全 javascript对表格的控制

cha138/Article/program/net/201311/12208

知识大全 struts利用Token防止用户重复提交

struts利用Token防止用户重复提交  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!