zoukankan      html  css  js  c++  java
  • struts2入门,struts.xml配置

    建立一个使用struts的程序其实步骤并不是很多,

    1, 在web.xml里面配置好过滤器,

    2, 导入需要的struts Jar包。

    3, 设置struts.xml的监听 ,决定action由谁来处理

    4, 完成设置的action监听类。

     

    过滤器的种类貌似很多,还不是很清楚它们之间的区别。

     

    通过.properties文件进行字符串配置,可以配置出多种语言, android也有类似的语言国际化方案。使用的时候,通过

    <(struts标签名):text name="(字符名)"/>

    来调用。

     

    EL表达式: 

    ${sessionScope.user} 表示session中取出user

     

     

    struts.xml的监听方案很灵活,可以做很多的配置

    比如下面这个,客户端提交的表单的action是login,则调用第一个

    loginAction 第二个

    LoginAction 第三个

    <packagename="lee" extends="struts-default">

     

         <!-- 配置name="*Action"的第二个Action -->

         <action name="*Action"class="org.crazyit.app.action.TwoAction">

             <resultname="success">/welcome.jsp</result>

         </action>

         <!-- 配置name="*"的第一个Action -->

         <action name="*"class="org.crazyit.app.action.FirstAction">

             <resultname="success">/welcome.jsp</result>

         </action>

         <!-- 配置name为LoginAction的第三个Action -->

         <action name="LoginAction"class="org.crazyit.app.action.LoginAction">

             <resultname="error">/error.jsp</result>

             <resultname="success">/welcome.jsp</result>

         </action>

    </package>

    当有多个方法需要选择执行的时候,可以在struts.xml配置,也可以直接使用

    actionname!methodname.action的方式,比如如下配置:

    <packagename="lee" extends="struts-default">

            <!-- 配置loginAction,处理类为LoginRegistAction

                默认使用execute方法处理请求-->

            <action name="login"class="org.crazyit.app.action.LoginRegistAction">

                <!-- 定义逻辑视图和物理视图之间的映射关系 -->

                <resultname="input">/login.jsp</result>

                <resultname="error">/error.jsp</result>

                <resultname="success">/welcome.jsp</result>

            </action>

            <!-- 配置registAction,处理类为LoginRegistAction

                指定使用regist方法处理请求-->

            <action name="regist"class="org.crazyit.app.action.LoginRegistAction"

                method="regist">

                <!-- 定义逻辑视图和物理视图之间的映射关系 -->

                <resultname="input">/login.jsp</result>

                <resultname="error">/error.jsp</result>

                <resultname="success">/welcome.jsp</result>

            </action>

        </package>

    如果需要注册,点击注册的时候,使用javascript将form的action改为regist,就会调用注册方法。

    <inputtype="submit"value="注册"onclick="regist();"/>

    <scripttype="text/javascript">

    function regist()

    {

       //获取页面的第一个表单

       targetForm = document.forms[0];

       //动态修改表单的action属性

       targetForm.action = "regist";

    }

    </script>

    如果使用!方式调用,如formaction="login!regist.action" 则仍然调用的是regist方法。

    还可以为action配置 namesapce 

    action="HelloWorld" namespace="/tt" 等价于
    action="/tt/HelloWorld.action"


    还可以使用类似{}的字符处理方案,如<action name="*Action" class="com.namespace.LoginRegistAction" method="{1}"> 动态选择执行的函数

    <action name="*Action" class="com.namespace.{1}Action">

    还可以使用el表达式动态设定结果的目标页面 <result name="success">/${target}.jsp</result>

    target由Jsp通过form提交到Action处理类,


  • 相关阅读:
    POJ 1330 Nearest Common Ancestors(LCA Tarjan算法)
    LCA 最近公共祖先 (模板)
    线段树,最大值查询位置
    带权并查集
    转负二进制
    UVA 11437 Triangle Fun
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
  • 原文地址:https://www.cnblogs.com/suijing/p/3379396.html
Copyright © 2011-2022 走看看