关于Action总结
来源:互联网 发布:飞行燃料走淘宝 编辑:程序博客网 时间:2024/06/06 03:29
1. Action入门:helloworld;
2. Namespace:
(1) 决定action的访问路径。
(2) 它默认是””,这样可以收所有路径的action
(3) 可以写成/ 或者/TanZi,对应的访问路径就是/index.action,/TanZi/index.action
(4) Namespace最好也用模块来进行命名
3. 定义自己的Action
(1)具体视力的返回可以由用户自己定义的Action来决定
(2)具体的手段是根据返回的字符串找到的对应的配置项来决定视图的内容
(3)具体Action实现可能是一个普通的java类,里面有public String execute方法或者实现Action接口。
(4)不过最常用的是从ActionSuppoort继承,好处在于可以直接使用Struts2封装好的方法。
4. 路径设置
5. 调用Action的自定义方法
(1)action访问时不一定会调用execute方法。
(2)可以配置文件中配置Action的时候用method=来指定执行哪个方法也可以在url地址中动态指定(动态方法调用DMI)
6. 通配符
*是表示所有。。{1}代表第一个星所代表的意思
7. 接收用户输入
(1)会自动接收url传来的数据。自动的意思是说:会自动调用对应的set方法
(2)当接收到action时,先把DTO数据填好
(3) 用modelDriven接收参数
8. 乱码问题解决
(1)在struts中加一句<constant name=”struts.i18n.encoding” value=”GBK”/>
(2)要查struts要到哪查?
9. 简单数据校验
然后现把数据从value Stack contents中读出来。
10. Action中访问web元素
关于分类:
对于(map类型)request. session .applicationyy
方法一:
public class LoginAction1 extendsActionSupport {private Map request;private Map session;private Map application;public LoginAction1(){ request=(Map)ActionContext.getContext().get("request");//得到request session=ActionContext.getContext().getSession();//得到session application=ActionContext.getContext().getApplication();//得到application}public String execute(){ request.put("r", "r帅哥"); session.put("s坛子","s帅哥"); application.put("a坛子","a帅哥"); return SUCCESS;}}
方法二:
能过实现RequestAware ,SessionAware,ApplicationAware等相对应的接口
packagecom.tanliu.Login;importjava.util.Map;importorg.apache.struts2.interceptor.ApplicationAware;importorg.apache.struts2.interceptor.RequestAware;importorg.apache.struts2.interceptor.SessionAware;importcom.opensymphony.xwork2.ActionSupport;publicclass LoginAction2 extends ActionSupport implementsRequestAware,SessionAware,ApplicationAware{ private Map<String, Object> request;private Map<String, Object> session;private Map<String, Object> application; public String execute(){ request.put("r", "r2帅哥"); session.put("s坛子","s2帅哥"); application.put("a坛子","a2帅哥"); return SUCCESS;}@Overridepublic void setApplication(Map<String,Object> arg0) { this.application=arg0; }@Overridepublic void setSession(Map<String,Object> arg0) { this.session=arg0; }@Overridepublic void setRequest(Map<String,Object> arg0) { this.request=arg0; }}
真实型的:HttpServletRequest,HttpServletSession, ServletContex
使用方法:实现ServletRequestAware接口
实现代码:
packagecom.tanliu.Login; importjavax.servlet.ServletContext;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpSession;importorg.apache.struts2.interceptor.ServletRequestAware; importcom.opensymphony.xwork2.ActionSupport; publicclass LoginAction3 extends ActionSupport implements ServletRequestAware { private HttpServletRequest request; private HttpSession session;private ServletContext application;public String execute(){ request.setAttribute("r2","r3帅哥"); //注入的方法有所有同 session.setAttribute("s坛子","s2帅哥"); application.setAttribute("a坛子","a2帅哥"); return SUCCESS; }@Overridepublic voidsetServletRequest(HttpServletRequest request) { this.request=request; this.session=request.getSession(); this.application=session.getServletContext(); }}
当数据传前端时会自动专是相对应的对象。如(map)request->request
在前端表现可分为两种:<s:propertyvalue="#request.r"/>|<%=request.getAttribute("r")%>其它三个也是一样。
11. 包含模块配置文件
作用:把开发中的配置文件合并起来
实现:在strust文件中<include file=”login.xml”/>
12. 默认Action
意义:方便当url找不到的。然后就转到一个默认的jsp.好比别人访问一个不存在的内部时。可以跳到指定的地址。
实现:<default-action-refname=”index”></default-action-ref>
- 关于Action总结
- 关于Struts2中Action的一些总结
- Action总结
- 关于Action(extends HttpServlet)与JSP间数据传递总结
- 关于Redux的一些总结(一):Action & 中间件 & 异步
- 关于Redux的一些总结(一):Action & 中间件 & 异步
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Java线程:线程的同步-同步块
- 计算C语言程序运行时间
- jquery trigger与triggerhandler的介绍
- Max Points on a Line Leetcode Python
- 卡特兰数整理
- 关于Action总结
- 设置状态栏、导航栏背景颜色,修改导航栏返回按钮颜色
- JDK源码-TreeMap
- 2015最新Windows 2003安全设置
- 将查询结果插入到现有表中
- Make文件中赋值等号的几种类型(:=,?=,=)
- ActionBar 的运用
- 缓存 PHP opcode
- eclipse jquery 报错