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处理类,


  • 相关阅读:
    Shell从入门到精通进阶之四:流程控制
    15个Python面试问题(附答案)
    python教程:内置函数和语法糖触发魔法方法
    python教程:利用while求100内的整数和
    python 教程:read(),readline() 和 readlines() 比较
    python生成随机数:uniform(), randint(), gauss(), expovariate()
    Python教程: 字符串转义序列及格式化
    python单例模式的五种实现方式
    Python NumPy的常用函数
    python五种调试或排错的方法
  • 原文地址:https://www.cnblogs.com/suijing/p/3379396.html
Copyright © 2011-2022 走看看