Struts2学习笔记(配置文件和参数接受)

Struts2是什么?

Apache Struts 2 是一种流行的 Java模型 - 视图 - 控制器(MVC)框架,成功地结合了 WebWork和Struts1.x 两种 web 框架。

搭建Struts2开发环境。


需要知道的Jar包。

struts2-core-2.1.6.jar --------------- struts2的核心包
freemarker-2.3.13.jar--------------- FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具
commons-logging.jar ----------- Jakarta的通用日志记录包
ognl-2.6.11.jar -------------- 支持ognl表达式
xwork-2.1.2.jar -------------- xwork的包 由于Struts2是由xwork的延伸 有些类依然关联着 xwork的类

commons-fileupload-1.3.1.jar---------文件上传包

commons-io-2.2.jar---------IO流包
commons-lang3-3.2.jar-----Lang的扩展包

javassist-3.11.0.GA.jar-----代码生成工具Hibernate用它在运行时扩展java类和实现,同cglib包

..........................

配置文件

1.修改对应的web.xml文件,

<filter>
<filter-name>struct2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
这里写完后按住ctrl点击鼠标左键如果可以跳转则证明正确
</filter>

..............................................................................

<filter-mapping>
<filter-name>struct2</filter-name>
<url-pattern>/*</url-pattern>
/*是所有的都需要过滤
</filter-mapping>

2.struts.xml文件

在项目src目录下简历struts.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package name="default" namespace="/" extends="struts-default">
<action name="hellword" class="com.zxj.action.HelloWordAction">
<result>/result.jsp</result>
</action>
</struts>
NamePace:决定了Action的访问路径

1.默认为“”,可以接受所有的action,如果没有找到响应的namepace时,则用namepace为空的action

2.可以写为/,或者/xx,或者/xx/yy,对应的action的访问路径为/index.action,/xx/index.action,或者/xx/yy/index.action

namePace最好用模块来命名

Package:<package>标签是用来解决重命名的问题,例如当系统的前台和后台都有一个action的名叫hello,这时就需要package来区分,前台<package name="font">

后台<package name="back"> struts2中的package和java中的都是相同的作用

Action 返回视图:

具体的视图的返回可以由用户自己定义的Action来决定,

具体的手段是根据返回的字符串找到对应的配置顶,来决定视图的内容,有三种手段

1.定义一个普通的java类,定义一个 execute()方法

配置action:

<action name="LoginTestAction" class="com.zxj.action.LoginTestAction">
<result name="success">/add.jsp</result>

2.省略action配置文件中的class,定义一个实现Action接口

3.继承ActionSupport

动态调用方法(不能因为需要每访问一个action就去创建一个action类):

1.通过method方法去指定调用哪个方法

<action name="LoginTestAction" class="com.zxj.action.LoginTestAction" method="add">
<result name="success">/add.jsp</result>
</action>

只要这个类中有add方法,就会找到这个类的方法

2.!方法调用(action+!+方法名字)

第一种方法需要大量的action配置,只要动态的在action配置执行某个方法

3.通配符

星号表示所有(*)

{数字} 表示第几个通配符

<action name="*_*" class="com.zxj.action.{1}TestAction" method="{2}">
<result name="success">/{1}_{2}add.jsp</result>
</action>

参数接受:

1.在action类中添加成员属性接收参数

例如请求:http://localhost:8080/StrursHelloWord/HelloWord?name=a&age=12;

只需要在HelloWord里面分别设置name,age的get和set方法

2.域模型(就是利用对象来传参数)

定义对象传参数

3.ModelDriven接受参数

让Action实现com.opensymphony.xwork2.ModelDriven.ModelDriven<T>

通过 getModel(),实现返回对象

中文问题:2.7之前设置这个方法无效

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

//开启模式开发模式,正事运行时需要开闭,减少消耗
<constant name="struts.il18.encoding"  value="gbk"></constant>



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值