一、package中的name,extends,namespace
跟java中的package一样,在java中是对相同的名的java类进行package区分,而这里是对相同名的action进行区分。
如:
<package name="front" extends="struts-default" namespace="/front">
<action name="hello">
<result type="dispatcher">/hello.jsp</result>
</action>
</package>
<package name="back" extends="struts-default" namespace="/back">
<action name="hello">
<result type="dispatcher">/hello.jsp</result>
</action>
namespace可以来确定哪个命名之下的action,extends可以继承其他的package的配置,namespace可以不写,也可以写成namespace=“ ”,这是就相当于可以接受任何namesapce情况的连接,只要该链接的action存在,即可访问。
也就说namespace为空的解决了其他package不能处理的action
二、action 中的name, class,method
如一中的action他是直接执行了默认的action类,我们可以自己定义action类来执行自己需要的操作,并且返回值,根据返回的result来确定下次执行的页面
<action name="hello" class="com.thridProject.action.HelloAction">
<result type="dispatcher">/hello.jsp</result>
</action>
这个时候我们可以在后台写自己的HelloAction.java的源文件了
在实现HelloAction的时候有三种方法;
1)只要这个Class类中存在execute方法并且该方法的返回值是一个String类型,Struts2就能把这个类当成是一个Action实现方法(Struts1与Struts2的区别)
package com.thridProject.action;
public class HelloAction {
public String execute(){
return "success";
}
}
2)实现的类继承ActionSupport类,并且实现execute方法:
package com.thridProject.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
public String execute(){
return "success";
}
}
3)第三种方法是继承Action 接口,并且实现Action接口的execute方法。不过一般开发我们只用第二种方法.
在这个地方我们可以稍微注意下,在jsp路径的问题上,最好使用绝对路径,并且MyEclipse会自动的帮你生成basepath
method指定在调用该类时执行哪个方法,默认会调用execute方法,但是我们可以给他指定方法,只要方法的返回值是个String类型就可以。这个时候Struts.xml的配置为:
<package name="default" extends="struts-default" namespace="/">
<action name="hello" class="com.thridProject.action.HelloAction" method ="add">
<result type="dispatcher" name="success">/hello.jsp</result>
</action>
</package>
java类型的代码为:
package com.thridProject.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
public String add(){
return "success";
}
}
当然方法也可以是其他的名字,都是一样的道理。
当然方法的调用可以是使用动态的方法调用,这个时候不需要再Struts.xml的action配置中写上method,我们可以在写url是动态的指定格式为:
http://loacalhost:8080/ThridProject/hello!add
分享到:
相关推荐
DWR和strut.docx
在线演示:http://strut.io/editor/ Strut支持Markdown的语法,而且对于有一定基础的用户,可以自定义CSS样式。当你设计好了你的幻灯片,你可以设置旋转角度和缩放比例等参数,切换不同的预览方式和页面布局。除了...
这个strut-config配置详解是韩顺平老师指定的 很多同学都看过韩老师的视频或者上过韩老师的课程吧
下载后解压直接导入到Myeclipse中发布到tomcat后运行即可,源代码没有错误,已运行试过,三种方法转换的时候需要修改strut.xml中的Action
圆偏振双焦点 可帮助你更快地计算 Circular polarized double focus
ssh(spring+strut1.x+hibernate)整合完整教程word版 附带包
-- 定义Action(login.action) --> <action name="login" class="mypack.UserAction"> <!-- 定义转发路径对应的字符串名 --> <result name="success">fg <result name="error">p </action> </...
<constant name="struts.action.extension" value=","/> <!-- 当配置文件修改后,系统自动加载该文件。开发阶段建议打开此功能 --> <constant name="struts.counfiguraction.xml.reload" value="true"/> <!-...
struts2上传和下载的jar包,最新的.
strut2 登录strut2 登录strut2 登录
包涵三本in action系列: 《strut 2 in action》 2008年版 《hibernate in action(Java Persistence with hibernate)》2007第二版 《spring in action》2011年 第三版
dao domains service strut serviceImpls utils action applicationContext.xml Log4j.properties struts-config.xml 非常好用的SSH框架代码生成工具,只要输入数据库表名 数据库密码 数据库用户名。就可以生成SSH...
struts2.0 详细介绍了struts.xml的配置,以及web.xml的配置和ActionContext,ServletActionContext的用法和区别。ActionContext主要用于设置属性,而ServletActionContext主要用来得到属性
Web application struts 2. Web chay tren framework strut.
可用运行 适用于初学者,struts.xml配置 和 web.xml配置时需要注意的地方。
NULL 博文链接:https://newli2010-.iteye.com/blog/1134674
SSH开发全jar包,sping strut2 H.....
java web 中型网站 采用Strut框架
strut2jar包