Struts2 由 struts.xml xxx.java web.xml xxx.jsp 组成
执行的规则是:首先访问 xxx1.jsp ,显示 xx1.jsp 界面,一番操作后访问服务器的请求被 web.xml 拦截,然后对应的 struts.xml 中 action 被激活,action 中相应的类 xxx.java 执行,执行后放回一个 String 类型的值,然后继续查找 action 中 result 的 name 属性,执行相应 result 对应的 xxx2.jsp
项目图:
web.xml 是配置拦截器的。
未指定打开界面时,系统自动选择的最开始的界面(这里是列表,可以有多项) index.jsp 欢迎界面,优先级从上到下拦截器 struts2 拦截器名称拦截器使用的拦截类类 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 拦截器映射 struts2 要对应前面的名称/* 拦截的类型
xxx.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>My JSP 'index.jsp' starting page
struts.xml
包名可以自己定,扩展 struts-default(默认的)(不知道原因) action!!名称为 zhua ,对应的类为 text.Zhua (action的名称应与 xxx.jsp中form标签的action一致) /ok.jsp 对应返回值,显示相应的界面/no.jsp
xxx.java
package text;import com.opensymphony.xwork2.ActionSupport;public class Zhua extends ActionSupport 继承类{ private String zhanghao; 定义账号与密码 private String mima; public String getZhanghao() { return zhanghao; } public void setZhanghao(String zhanghao) { this.zhanghao = zhanghao; } public String getMima() { return mima; } public void setMima(String mima) { this.mima = mima; } @Override public String execute() throws Exception 重要的方法 { System.out.println(zhanghao+mima); // TODO Auto-generated method stub if(zhanghao.equals("chen")) { if(mima.equals("chang")) { return "ok"; 返回值ok } } return "xx"; 返回值no }}
ok.jsp 跳转的界面 ,基本不用改动
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>My JSP 'ok.jsp' starting page ok 唯一更改的地方