sturts2 struts.xml配置问题

Struts.xml的配置详情

分割文件

Struts.xml

<include file="struts_user.xml"/>

<include file="struts_shangpin.xml"/>

 

1.配置常量

整个struts的通用设置

<!-- 开发模式,更改struts.xml文件,不需要重启服务器 -->

<constant name="struts.devMode" value="true"/>

<!-- 设置编码方式 -->

<constant name="struts.i18n.encoding"value="utf-8"/>

2.Package

和java中的包,概念一样.区分action

a)        Name属性,唯一

    <a href="qian/login">登录1</a>

<a href="hou/login">登录2</a>

<package name="qian" namespace="/qian" extends="struts-default">

<package name="hou" namespace="/hou" extends="struts-default">

3.Action

a)        创建方式

i.          普通类

ii.         实现Action接口

iii.       继承ActionSupport类(实现数据校验必须的途径)

b)        作用 : 相当于servlet,作为核心控制器

i.          封装工作单元(请求封装需要的实际工作,例如,登录,注册,模糊查询等)

ii.         数据转移(登录成功,封装session里用户名)

iii.       返回结果(帮助框架决定由哪个结果呈现请求的资源)

c)        Method属性

作用:减少action的数量

<action name="login" class="controller.UserAction"method="login">

d)        动态方法

                   <a href="login!method1 ">test1</a></br/>

<a href="login!method2 ">test2</a></br/>

调用login中的method1 ()方法,login中的method2 ()方法

<action name="login"class="controller.Test">

           <result>ok.jsp</result>

</action>

 

       缺点:方法名暴露于url,不安全!

e)        通配符

                  <a href="loginUser">login</a></br/>

<a href="registerUser">register</a></br/>

   

<action name="*User" class="controller.UserAction"method="{1}">

            <result>{1}_ok.jsp</result>

</action>

f)         默认action

当请求找不到相应的action,则分配给默认的action进行处理

定义:

<action name="xxx">

            <result>404.jsp</result>

</action>

引用:

<!—引用默认action的位置,必须是所有action首位置 -->

<default-action-ref name="xxx"/>

4.Result

a)        常用的结果类型

i.          默认的类型转发( dispatcher )

<result name="login" type="dispatcher">login.jsp</result>

ii.         重定向 redirect 

<result name="all"type="redirect">ok.jsp</result>

iii.       重定向action    redirectAction

<result type="redirectAction">allproduct</result>

b)        动态结果

public class UserAction {

    private String username;

private String role;

get和set省略

public String execute() {

        if (username.equals("sa")) {

            role = "ceo";

        } else if (username.equals("admin")) {

            role = "cto";

        } else {

            role = "se";

        }

        return "success";

      }

}

<action name="login"class="controller.UserAction">

    <result>${role}_manager.jsp</result>

</action>

 

c)        全局结果

作用:许多action需要方法同一个结果

<a href="b">testb</a>

public String execute(){

            System.out.println("做了一些事情!");

            当返回的结果,struts.xml中找不到的时候,就会访问全局结果

            return "somethings";

}

 

<package name="s" extends="struts-default">

            <global-results>

                <result name="somethings">some.jsp</result>

            </global-results>

            <action name="b" class="controller.Test">

                <result>ok.jsp</result>

            </action>

</package>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值