Struts2框架配置

Struts2框架配置

1. strtus.xml

        namespace对应的地址


 

(1)Package

<!--
   packge: 他跟项目中的包没关系,它是用来管理action
   name:给这个package起个名字,没什么意思,可以随便命名,
        一般情况下他的命名是按早当前package管理action的分类来命名
        package和package的名字不能重复
   namespace:访问路径地址前缀   跟name没有关系   跟其他的
                package中的namespace能不能重复没有要求
   extends:继承   继承自struts-default   必须写 名字不能改
            从struts2核心包中struts-2.2-core     下面的
            struts-default.xml 这里面配置了很多默认的属性
   abstract:抽象  声明的一个标志,当前这个配置文件不能独立
            运行,等待被继承

-->


(2)action配置

<!--action配置详解
        name:给action起名字 决定了访问路径最后的地址
        class:类的完整路径名
        method:访问类中的方法
-->
<action name="helloAction" class="cn.hd.hello.HelloAction" method="hello">
    <!--resul
        name:对应的是action类中的 method的返回值名字可以
              随便写,只要和action类中的返回值结果一样就可以,
              但是一般情况下使用特定
        type:dispatcher 转发
              redirect  重定向
        标签中间的值:跳转页面的地址

    -->
    <result name="success">/hello.html</result>
</action>

 
(3)include在src struts.xml可以去读取其他位置的xml配置文件要求创建的xml必须也有约束
<include file="cn/hd/dynamic/struts01.xml"></include>

 

2常量配置

默认的常量配置 struts2的核心包下的org

 

 

默认常量配置的文件名是default.properties

 

如何修改这些常量:

(1)struts.xml中去修改

<!--i18n    国际化     相当于我们在servlet中设置的编码
            解决了post请求的中文乱码
-->
<constant name="struts.i18n.encoding" value="UTF-8"></constant>

(2)ser目录下 创建struts.properties文件 直接该文件中去修改常量即可

 

(3)web.xml文件中去修改 添加一个context-param param-name中书写常量名,在param-value中书写常量值

 

三个地方同时修改那个生效?

    web.xml > struts.properties > struts.xml

推荐使用第一个

 

常用的常量:

1i18n.ecoding 设置编码解决了post请求的乱码情况

name="struts.i18n.encoding" value="UTF-8"

(2)struts.action.extension 设置action的访问扩展名

<!--extension   使用设置action  访问的扩展名
    action,
    可以改成do  为什么要改成do    应为struts1用的是do

如果改成do那么在访问路径中的action中必须加上.do否则会有404
-->
<constant name="struts.action.extension" value="do"></constant>

(3)struts.devMode 开发者模式 默认关闭

<!--developerMode   开发者模式
    1.热部署    你修改配置文件后,等一段时间会自动加载
    2.提高错误信息的提示(有好的错误提示)
-->
<constant name="struts.devMode" value="true"></constant>

3.高级配置

为什么要使用动态方法

如何配置动态方法

1)推荐使用

<action name="userAction_*" class="cn.hd.dynamic.UserAction" method="{1}">
    <result name="success">/hello.html</result>
</action>


Action配置中的name属性 决定着浏览器的访问地址

Struts2可以采用通配符的方式默认去读取 method1}会自动将路径中userAction

。。。配置到method

(2)开启动态方法

首先要开启动态方法的常量

<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>

action中的method删除掉 完成了动态方法的开启

测试时候 在浏览器路径中输入actionname++方法名(Action中的方法名)

注意:

第一种方法在struts2的高版本中会无效

首先你要开启动态方法,然后增加allowed-methods属性

<action name="userAction_*" class="cn.hd.dynamic.UserAction" method="{1}">
    <result name="success">/hello.html</result>
    <allowed-methods>update,add,delete,get</allowed-methods>
</action>

1. 默认配置

<!--
    method  属性可以不写  默认方法    execute
    result  标签中的name 属性可以不写 success
            type    可以不写    默认是dispatcher
    class   可以不写    默认的类是ActionSupport  打开这个类文件 它里面有execute 方法
            该方法返回一个success字符串
-->

<!--默认的action地址
    如果请求地址不存在,那么会默认访问default-action-ref
    里面的action
-->

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值