struts2_part3

2014-11-24 09:04:17 · 作者: · 浏览: 0
一、定义错误提示信息
1)在action中,通过 this.addFieldError("name","name is error"); //定义错误提示信息
2)在JSP页面中,查看错误信息
方式一:
方式二:
debug中的errors是一个map类型,而name是一个数组,可以在action继续添加错误提示信息
可以查看值栈信息
二、访问Web的元素,也就是获取request,session,简要记录两种。
1)依赖于struts2
在action 中设置,
ActionContext.getContext().getSeesions(); // 获取session
ActionContext.getContext().get("request"); // 获取request
以上获取到的类型都是Map类型,Strut2会将这些Map填充到HttpRequest,HttpSession中
实例代码:
private Map request;  
private Map session;  
private Map application;  
// 都是Map 类型  
  
public String execute() throws Exception {  
  request = (Map)ActionContext.getContext().get("request");  
  session = ActionContext.getContext().getSession();  
  application = ActionContext.getContext().getApplication();  
    
  request.put("name","core");  
  session.put("user", "lyb");  
  application.put("app","Android");  
    
  return SUCCESS;  
 }  
   

2)IoC,控制反转。通过实现接口 implements RequestAware,SessionAware等,常用的开发方式
何为控制反转?我觉得就是通过接口方法,它自动给你设置好了,你把控制权交给接口去处理了。
在接口方法中设置request,session,application等。
实例代码:
public class UserAction extends ActionSupport implements RequestAware,SessionAware{  
   
  
 private Map request;  
 private Map session;  
   
 public String execute() throws Exception {  
  
   /** 因为实现了接口,所以不需要通过下面的代码获取相应的属性。 

   request = (Map)ActionContext.getContext().get("request"); 
   session = ActionContext.getContext().getSession(); 
   application = ActionContext.getContext().getApplication(); 

   ********************************************************************/  
  
   //这里直接设置即可  
   request.put("name","xiao mai");  
   session.put("user", "lyb");  
  
   return SUCCESS;    
 }  
  
 @Override  
 public void setSession(Map
session) { // TODO Auto-generated method stub this.session = session; // 设置参数 } @Override public void setRequest(Map request) { // TODO Auto-generated method stub this.request = request; // 设置参数 } }

3)在JSP中展示
方式一:
<%=request.getAttrubute("r1") %>
<%=request.getParameter("user.username") %>
<%=session.getAttribute("user") %>
方式二:

三、struts.xml模块包含,可以在struts.xml中,包含其他的xml配置文件。
我觉得一般的做法是:在struts.xml中,配置一些公共的配置,如全局配置,错误处理等,
然后在其他子xml配置文件中配置各自的模块信息,这样有利于分工,并且模块化可维护性高。
语法:,注:login.xml的格式和struts.xml一样。
四、配置默认action,
当用户访问页面,没有指定任何.action的时候,就将用户的请求当做是default.action来处理。
自然的,就需要配置相应的action
/default. jsp
注:我觉得可以利用这个做 Error404 之类的处理,只要找不到Action就统一定向到错误提示页面,或返回首页。