标签的使用

思路:

     1.struts标签使用

     2.BeanUtile的使用(实现转换器)

     3.struts的国际化,和文件上传,同步令牌机制

     4.知识点很零乱。要有选择的记忆!!学习方法很重要。

     

 

回显时标签的注意事项:

1.        复选框不再用checkbox

2.        下拉列表为optoins(注意,加了s)

 

struts的架构流程

   * 引入jar包

   * 配置web.xml文件

   * 引入struts-config.xml(清仓处理)

   * 定义customer.jsp

   * 定义CustomerForm(没有属性)

   * 定义action

   * 配置struts-config.xml文件

   * 测试运行

 

 

业务流程:

  * 点击客户信息录入  ---- PreCustomerAction

          * 在此action中查询数据库

          * 转到customer.jsp

  * 点击保存按钮插入-------customerSave

          * 插入数据到数据库中

  * 点击 "客户信息查询" customerList

          * 查询所有的客户信息

   

   

   

  新的标签:

   源代码

   <c:forEach items="${alllove}" var="love1">

                <html:multibox property="love" value="${love1}"></html:multibox>

                ${love1}

   </c:forEach>

 

   转化后的代码

  <input type="checkbox" name="love"(property="love")   value="美容" (value="${love1}")>

                美容(${love1})          

  <input type="checkbox" name="love" value="IT">

    IT

    <input type="checkbox" name="love" value="篮球">

    篮球     

   

   

   

   

 源代码

      collection="jobList"<Job>    表示一个集合,strurs的标签自己处理

       property="jobid"            javaBean中的属性

        labelProperty="jobname"    javaBean中的属性

     

     <html:select property="job.jobid">

              <html:options collection="jobList" property="jobid"  labelProperty="jobname" />

       </html:select>

 

 

 

 转化后的代码

<select name="job.jobid" (property="job.jobid")>

        <option value="1" (property="jobid" )>IT(labelProperty="jobname" )</option>

         <option value="2">金融</option>

         <option value="3">餐饮</option>

         <option value="4">咨询</option>

</select>  

//

struts的回显机制:

   * 在显示要修改的信息时,请求到action,这是要使用name和scope属性

      路径:

        <a href="/itcast1130strutsunit01/customerEdit.do?method=edit&amp;cid=3">

      配置文件如下

        <!-- 客户信息回显的Action -->

        <action path="/customerEdit"  name="customerForm"  scope="request"

            type="com.itcast.struts.action.CustomerAction"  parameter="method">

         <forward name="edit" path="/customerUpdate.jsp"></forward>

        </action>

   *  在action的edit方法中查询数据库返回一个javaBean对象    

      Customer c=customerService.findCustomerById(cid);

     

   *  把查询到得jaavabean对象中属性的值拷贝ActionForm中(特殊的做处理),就可以了

       * struts的在解析标签时候,回自动从actionForm取值,此时执行是get方法

  

     

 

//

 

 

 

Request.getAttribute(mapping.getAttribute())   //里面存放的是ActionForm的实例。默认的Name值是:action标签中的 name值。也就是说Request.setAttribute(name,actionForm);  这也就可以理解其内部是如何回显的了。

 

 

 

 

Struts处理表单重复提交的令牌机制:

利用sessionId和系统当前时间和md5加密之后再加移位算法,保证唯一行

 

转换器(BeanUtile工具类):

BeanUtils.copy

 

解决方法:自定义转换器(老佟讲过) 实现Converter接口 重写接口中的convert方法

注册转换器:再action实现类的静态代码块中中先注册转换器

            Static{

                                         ConvertUtils.register(new  转换器实例, java .util.Date.class  要转换的类型);

}

 

 

当使用BeanUtils.copyProperties()进行属性间赋值是,实际是吧信息放置到一个hasMap中map的key是转化数据类型的名称,value是转化器对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值