【struts框架】第一节Action-路径问题与创建Action方法
来源:互联网 发布:nba官方旗舰店 淘宝 编辑:程序博客网 时间:2024/05/16 19:56
1.路径问题
路径问题说明:
struts中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。
虽然可以使用redirect方式解决,但redirect方式并非必要。
解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)
或者使用myeclipse经常用的,指定basePath:
myeclipse建立jsp页面给自动生成的东西
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
,意义就是:http://localhost:8080/XXXX/,其中XXXX就是上面的path
拿到basePath后,把所有的链接都改写为绝对路径:
<a href="<%=basePath %>path/path.action">进入问题界面</a>
还有一种方法是在<head>里面加<base href="<%=basePath%>">
四大法宝:关掉,刷新,重启,重装
PS:
当直接访问WEB应用的名时,首先服务器先去找web.xml里面的配置,找到struts的filter,之后根据struts的filter-mapping,找到struts.xml,去找namespace,如果namespace不存在,就交给tomcat的配置去处理,直接根据welcome-file-list跳转到欢迎界面了。
2.创建Action的方法
具体视图的返回可以由用户自己定义的Action来决定
具体的手段是根据返回的字符串找到对应的配置项,来决定视图的内容
具体Action的实现可以是一个普通的java类,里面有public String execute方法即可
或者实现Action接口
不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts封装好的方法
<result>里面的name要是不配的话,默认是success
创建Action的三个方法:
1.
package cn.edu.hpu.action;public class IndexAction1 {public String execute(){return "success";}}
2.
package cn.edu.hpu.action;import com.opensymphony.xwork2.Action;public class IndexAction2 implements Action{@Overridepublic String execute() throws Exception {return "success";}}
3.
package cn.edu.hpu.action;import com.opensymphony.xwork2.ActionSupport;public class IndexAction3 extends ActionSupport{@Overridepublic String execute() throws Exception {// TODO Auto-generated method stubreturn super.execute();}}
开发的时候最常用的是第三种方法,原因是ActionSupport已经帮我们封装了一些特别方便的方法来使用。
3.关于Action
Action执行的时候并不一定要执行execute方法
可以在配置文件中配置Action的时候用
a.method=来指定执行那个方法
例如:
<action name="add" class="cn.edu.hpu.action.AddAction" method="add"> <result name="SUCCESS">/User_Add_success.jsp</result> </action>
package cn.edu.hpu.action;public class AddAction {public String add(){return "SUCCESS";}}
b.也可以在url地址中动态指定(动态方法调用DMI)(推荐)
(调用yyy的action中的add方法,而不是默认的execute方法)
http://localhost:8080/XXXX/yyy!add(注意用的是"!")
前者会产生太多的action,所以不推荐使用
尊重开源精神,尊重劳动成果,转载请注明出处:http://blog.csdn.net/acmman/article/details/43907321
- 【struts框架】第一节Action-路径问题与创建Action方法
- 【Struts框架】第一节Action-action接受参数
- 【struts框架】第一节Action-struts基础
- 【struts框架】第一节Action-NameSpace定义
- 【Struts框架】第一节Action-struts访问request等引用方法一
- 【Struts框架】第一节Action-struts访问request等引用方法二
- 【Struts框架】第一节Action-struts访问request等引用方法三和四
- 【Struts框架】第一节Action-简单的数据校验
- 【Struts框架】第一节Action-模块包含和defaultAction
- 【Strurts框架】第一节Action-通配符
- struts编译Action的路径问题
- Struts框架 action怎么动态调用方法
- struts/Servlet,action转到jsp后,路径问题(struts2,jsp路径,action路径,action跳转,相对路径,绝对路径)
- Struts中的Action方法
- STRUTS Action 方法校验
- struts 分发action问题
- struts action Path 问题
- Struts.xml中Action的method与路径的三种匹配方法
- 详解map、multimap、unordered_map、unordered_multimap
- C++私有继承实现has-a关系
- hdu 1162 Eddy's picture 最小生成树入门题 Prim+Kruskal两种算法AC
- 【struts框架】第一节Action-NameSpace定义
- EEPROM组件
- 【struts框架】第一节Action-路径问题与创建Action方法
- 我理解的JAVA学习流程
- C语言指针疑难杂症
- HDU 3586 Information Disturbing 二分+树形DP
- 初学OC1
- KEIL C
- the xib of iOS
- HTML+CSS初步 (1)
- Intent初探