下面我们来举一个简单的例子:
从效果图中可以看出我们的action配置跳转页面是成功的。
页面我们就写的简单点。
首页index.jsp
<a href="User_add">添加用户</a><br>
<a href="User_delete">删除用户</a><br>
<a href="Student_add">添加学生</a><br>
<a href="Student_delete">删除学生</a>
添加学生页面Student_add.jsp
删除学生页面Student_delete.jsp
添加用户页面User_add.jsp
删除用户页面User_delete.jsp
重点:struts.xml (有三种配置方法,这里用第三种)
(注:<1>.在这里第一个*代表Student或User,
<2>.第二个*代表Student里的所有方法名,即add delete或者User里的所有方法名,即add delete,
<3>.{1}就代表第一个*,即Student或User,
<4>.{2}就代表第二个*,即add 或者delete。)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<!-- method 1 -->
<!-- <action name="User_add"
class="cn.xxs.action.UserAction"
method="add">
<result name="add">
/User_add.jsp
</result>
</action>-->
<!-- method 2 -->
<!-- <action name="User_*"
class="cn.xxs.action.UserAction"
method="{1}">
<result name="{1}">
/User_{1}.jsp
</result>
</action>-->
<!-- method 3 -->
<action name="*_*"
class="cn.xxs.action.{1}Action"
method="{2}">
<result name="{2}">
/{1}_{2}.jsp
</result>
</action>
</package>
</struts>
User.java
package cn.xxs.entity;
import java.io.Serializable;
/**
*
* @author xxs
*
*/
public class User implements Serializable{
private static final long serialVersionUID = 170146945769201269L;
private String name;
private String pwd;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String name, String pwd) {
super();
this.name = name;
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User [name=" + name + ", pwd=" + pwd + "]";
}
}
Student.java
package cn.xxs.entity;
import java.io.Serializable;
/**
*
* @author xxs
*
*/
public class Student implements Serializable{
private static final long serialVersionUID = 170146945769201269L;
private String name;
private String sex;
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(String name, String sex) {
super();
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Student [name=" + name + ", sex=" + sex + "]";
}
}
BaseAction.java
package cn.xxs.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class BaseAction extends ActionSupport{
/**
* 获取request
* @return
*/
public HttpServletRequest getRequest() {
return ServletActionContext.getRequest();
}
/**
* 获取Response
* @return
*/
public HttpServletResponse getResponse() {
return ServletActionContext.getResponse();
}
}
StudentAction.java
package cn.xxs.action;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import cn.xxs.entity.User;
import net.sf.json.JSONArray;
/**
*
* @author xxs
*
*/
public class StudentAction extends BaseAction{
public String add() {
return "add";
}
public String delete() {
return "delete";
}
}
UserAction.java
package cn.xxs.action;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import cn.xxs.entity.User;
import net.sf.json.JSONArray;
/**
*
* @author xxs
*
*/
public class UserAction extends BaseAction{
public String add() {
return "add";
}
public String delete() {
return "delete";
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
ok。别忘了jar包。
另外,需要注意的是,实体类,Action类,jsp页面命名需要规范,不然会出现各种404.