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


posted @ 2013-03-07 09:17  碎景  阅读(145)  评论(0编辑  收藏  举报