struts2 学习笔记
来源:互联网 发布:网络调试助手使用说明 编辑:程序博客网 时间:2024/06/06 05:41
- Action实现的三种方式及其不同方式的特点优势
- 第一:声明一个普通的java类即可。这种做法不具有侵入性。
- 第二:实现Action接口。实现接口中的execute()方法,这种方式使得我们编写的代码更加规范。
第三:继承ActionSupport类。这种做法使得在继承类的同时继承了类中的属性和方法,如:验证。 自己可以选择重写类中的execute()方法。
实现例子参考自己去看吧,我就不在造轮子了
- http://www.2cto.com/kf/201410/346219.html
- http://www.cnblogs.com/chentingk/p/5651559.html
- http://blog.csdn.net/Ring_Len/article/details/52144665
Action调用的三种方式
第一种方式: 直接调用action中的方法(指定method属性 )
//struts.xml<action name="stu" class="com.itmyhome.Student" method="add"> <result name="add">/success.jsp</result> </action>//jsp代码 <p align="center"><a href="stu.action">查询</a></p> <form action="stu" method="post"></form>
说明:
- 这样Struts2就会调用stu.action指向Student类 中的add方法。
- Action执行的时候并不一定要执行execute方法,我们可以指定Action执行哪个方法:
- 只要在action的对象中有一个add的方法,并且返回类型为String就可以了。如果没有method属性,则默认执行execute()方法。
第二种方式:动态方法调用(DMI)
- Struts2支持动态方法调用,它指的是一个Action中有多个方法,系统根据表单元素给定的action来访问不同的方法,而不用写多个Action。
- 使用动态方法调用前必须设置Struts2允许动态方法调用,它是通过设置struts.xml中加上常量
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
-jsp中动态方法调用是指表单元素的action并不是直接等于某个Action的名字,而是以如下形式来指定Form的action属性
<a href="list!tolist.action"></a>
别人的例子
设置常量
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
动态方法调用是指表单元素的action并不是直接等于某个Action的名字,而是以如下形式来指定Form的action属性
action = "action!methodName.action"
在struts.xml中定义如下Action
<action name="student" class="com.itmyhome.StudentAction"> <result name="add">/add.jsp</result> <result name="delete">/delete.jsp</result> </action>
StudentAction代码为
public class StudentAction extends ActionSupport { public String add(){ return "add"; } public String delete(){ return "delete"; }}
则在JSP中用如下方式调用方法
<a href="student!add.action"> 新增学生</a><a href="student!delete.action"> 删除学生</a>
两种方式action的对比
<struts> <constant name="struts.i18n.encoding" value="utf-8"/> <constant name="struts.ui.theme" value="simple"/> <constant name="struts.DynamicMethodInvocation" value="true"></constant> <!-- action动态调用常量设置 --> <package name="default" namespace="/" extends="struts-default"> <action name="list" class="com.langlang.action.EmployeeAction"> <result name="tolist">/index.jsp</result> <result name="add">/index.jsp</result> <result name="detele">/index.jsp</result> <result name="edit">/edit.jsp</result> <result name="update">/index.jsp</result> </action> <!-- Struts2方法调用的三种方式,第一种方式:指定method属性 exp4_bookManage项目中用的是直接指定method方式 第二种方式:动态方法调用(DMI) 它指的是一个Action中有多个方法,系统根据表单元素给定的action 来访问不同的方法,而不用写多个Action。 jsp中调用这样的形式action = "action!methodName.action" 第三种方式,通配符(推荐使用) --> <!-- <action name="add" class="com.langlang.action.EmployeeAction" method="add"> <result name="yes">index.jsp</result> </action> <action name="delete" class="com.langlang.action.EmployeeAction"> <result name="yes">index.jsp</result> </action> <action name="detail" class="com.langlang.action.EmployeeAction" method="detail"> <result name="yes">detail.jsp</result> </action> <action name="update" class="com.langlang.action.EmployeeAction" method="update"> <result name="yes">index.jsp</result> </action> --> </package> <!-- Add packages here --></struts>
第三种方式:通配符(推荐使用)
<action name="student*" class="com.itmyhome.StudentAction" method="{1}"> <result name="{1}">/student{1}.jsp</result> </action>
<a href="studentadd"> 新增学生</a> <a href="studentdelete"> 删除学生</a>
- studentadd就会调用StudentAction中的add方法 然后跳转到studentadd.jsp
- studentdelete就会调用StudentAction中的delete方法 然后跳转到studentdelete.jsp
以上参考了各种代码,看起来有点乱,还是要自己消化和吸收的
这是我写的两个基于struts2 的项目
http://download.csdn.net/detail/qq_29232943/9661746
0 0
- struts2学习笔记--struts2配置
- Struts2学习笔记--安装struts2
- struts2.01学习笔记
- struts2学习笔记
- Struts2学习笔记1
- struts2.0 学习笔记
- struts2.01学习笔记!
- struts2学习笔记
- Struts2学习笔记1
- struts2 学习笔记
- Struts2学习笔记(1)
- struts2学习笔记(2)
- struts2学习笔记(3)
- Struts2学习笔记
- struts2学习笔记
- struts2学习笔记2
- Struts2学习笔记
- struts2学习笔记(一)
- 微信小程序开发 ide 编辑器的选择
- WebView的基本使用
- 简单申请列表状态数据处理 yii2
- 【进程通信】无名管道 and 有名管道
- Pick Several Elements From a Vector Randomly
- struts2 学习笔记
- Android_程序未处理异常的捕获与处理
- POJ 3087 模拟+hash
- 阿里面试回来,想和Java程序员谈一谈
- 【noip2015】【DP】子串
- Yii2 - 03视图(View)操作,以及Layout的使用
- 静态链表的实现
- item点击回调封装(改变带来Position的参数)
- lintcode Max Points on a Line