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
注:我觉得可以利用这个做 Error404 之类的处理,只要找不到Action就统一定向到错误提示页面,或返回首页。