struts的配置

一.struts的配置
   1.web.xml的配置
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

//接受各种以.do结尾请求的ActionServlet
    <init-param>
      <param-name>config</param-name> 
      <param-value>/WEB-INF/struts-config.xml</param-value> 

//可以配置Struts配置文件的文件名,支持多个配置文件
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>3</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>3</param-value>
    </init-param>
    <load-on-startup>0</load-on-startup>   //以最快速度初始化ActionServlet
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  //运行原理
       首先由浏览器提交表单映射到相应的以.do结尾的ActionServlet路径,再根据这个路径找到ActionServlet,再由ActionServlet根据这个路径初始化struts-config.xml,这样ActionServlet就将用户提交的表单信息填充到了相应的
      ActionForm,然后ActionServlet再将http请求转发到相应的action处理;
     2.struts-config.xml的配置
    
     struts-config.xm的根元素标签
     <struts-config>
             在这个标签里面主要有两个标签:
               <form-beans>
             在这个标签里只有一个标签:
                        <form-bean name="" type="" />   //name代表ActionForm的一个被实例化的名字,type代表这个ActionForm的类型
            假若这是一个动态FormBean,那么这个form-bean标签必须写成容器标签:
                    <form-bean name="userDynaForm" type="org.apache.struts.action.DynaActionForm"> 

//name为DynaActionForm的一个对象名,type为DynaActionForm的类型,是固定的
                    <form-property name="uid" type="java.lang.Integer" />  

//这个标签代表设置这个DynaActionForm的属性
                    </form-bean>
           
              </form-beans>
             和一个容器标签
             <action-mappings >
                      <action
                      attribute=""           //为某个ActionForm对象设置范围属性
                      input=""                 //填充到某个ActionForm的数据来源
                      parameter= ""      //代表一个DispatchAction的接收参数,这个参数的值就是这个DispatchAction的一个具体的方法名
                      name=""               //必须和某个ActionForm对象名完全相同
                      path=""                //代表这个action映射的一个请求路径
                      scope=""             //设置某个ActionForm对象的范围
                      validate=""          //表示是否对表单进行验证,true代表是,false代表不是
                      type="" >           //代表这个action的类型
                 <forward name="" path="" />      //表示这个action处理完客户请求时转发的页面
             </action>
             </action-mappings >
     </struts-config>
二.动态FormBean使用    
    1.首先是formBeans标签的配置问题
    在这个标签里面的一个formBean标签得改成容器标签了,如下:
       <form-bean name="form" type="org.apache.struts.action.DynaActionForm">    //name为DynaActionForm的一个对象名,type为DynaActionForm的类型,是固定的
            <form-property name="user" type="java.lang.String"></form-property>   //这个标签代表设置这个DynaActionForm的属性,必须和表单元素对应
       </form-bean>
    2.其次是在action这个类中获取动态FormBean中的属性值
        有两种方法
        (1)DynaActionForm 的get(String name),这种方返回Object类型的数据,还需强制转换;
        (2)DynaActionForm 的getString(String name),这种方法返回String类型的数据,方便快捷;        
             注:这两种方法里面的参数必须和DynaActionForm的属性名对应


三.使用实体对象作为Form属性 
      1.首先在form类中声明一个具体的实体对象.如:声明一个用户实体对象:User user = new User();
      2.再在form类中写好实体类的get和set方法.
      3.在客户端表单元素中的名字必须写成user.userName、user.password;  
四.struts标签
      1.html标签:
          (1)该标签的导入有两种方式:<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>和
          <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> 效果一样   
          (2)表单标签种类:
             文本框:<html:text property="" />
             密码框:<html:password property="" />
             单选框:<html:radio property="" value=""/> //value属性必须要
             复选框:<html:checkbox property="" value=""/>
             隐藏框:<html:hidden property="" value=""/>
             文件选择框:<html:file property="" value=""/>
             下拉列选框:<html:select property="">
                    <html:option value=""></html:option>
                    <html:optionsCollection name="" label="" value=""/> //name指明某个设置到request或者session对象范围中的对象,label代表显示在客户端的文本,value代表选项值;
                    </html:select>
             多行文本框:<html:textarea property="" value="" /> //value代表其中的内容
                            注意:上面所有标签的property属性均指html表单中的name属性
       2.Logic:empty标签:
        <logic:empty name="user" scope="session">   //<logic:empty>:判断指定的变量是否为null,或者为空字符串
           <span οnclick="alert('请先登录') ">高级搜索</span>
        </logic:empty>
        <logic:notEmpty name="user" scope="session"> //<logic:notEmpty>:判断指定的变量不为null,并且不为空字符串
           <span οnclick="switch('advSearch')">高级搜索</span>
        </logic:notEmpty>
       3.bean:define标签:
        <bean:define id="allSearchResult" name="allSearchResult" type="java.util.List" scope="request"/>
           //id代表name属性指代的对象的一个别名,定义好后,就可以在java代码中直接使用id别名
           //name指代被设置到scope范围中的对象
           //type指代该对象的类型
       4.logic:iterate标签:
  <logic:iterate id="film" name="currentSearchResult">
     //name指代被设置到request或session中的对象,该对象必须是Set或List等集合类型
     //id指代这个集合中的其中一个元素,并为该元素命名为film
  影片名:<bean:write name="film" property="filmName"/><br>
     //该标签用于向客户端输出内容
     //name指代集合中的一个值,即是logic:iterate中的id属性对应的值
           //property指代对象film的下一个属性值
     影片封面:<br><img src="imgs/filmImgs/<bean:write name="film" property="imgUrl"/>" width=130 height=190><br>
        //这里在img标签中嵌套bean:write标签
     影片演员:<logic:iterate id="actorFilm" name="film" property="ticketActorFilms">
              //property指代name对象film的下一属性,该属性是一个Set类型的元素,所以同样返回到logic:iterate标签中
              //id在这里指代film对象的下一属性集合中的其中一个对象
               <bean:write name="actorFilm" property="id.ticketActor.actorName"/>&nbsp;
                //需要涉及到属性的下一属性的下一属性时,就在属性之间以"点"隔开
            </logic:iterate>
  </logic:iterate>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值