struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!--
package相当于java中的包,起到分明别类的作用
extends="struts-default",表示继承了
<package name="struts-default" abstract="true">
abstract="true",相当于struts-default成了一个抽象类,
表示这个包不能直接使用它只能继承他
-->
<package name="struts2" extends="struts-default">
<!--
匹配login之后,实例化LoginAction对象
对于Struts2来说,每次请求都会生成这个类的一个实例
如果action标签中method属性没有值就会默认调用LoginAction类中的execute
如果有值就会调用LoginAction类中的对应方法,
这种自定义方法不建议使用,因为容易导致Action代码的混乱
-->
<action name="login" class="com.itlwc.struts2.LoginAction" method="myMethod">
<result name="success">success.jsp</result>
<result name="error">error.jsp</result>
</action>
</package>
</struts>
login.jsp
<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<form action="login?parameter=2" method="get">
name : <input type="text" name="name"><br>
password : <input type="password" name="password"><br>
<input type="submit" value="submit">
</form>
</body>
</html>
success.jsp
<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
name : ${requestScope.name} password : ${requestScope.password}
</body>
</html>
error.jsp
<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
用户名或者密码错误
</body>
</html>
LoginAction.java
package com.itlwc.struts2;
import com.opensymphony.xwork2.ActionSupport;
//页面提交过来的不是看属性的名字而是看get,set的名字
public class LoginAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private String name;
private String password;
private String parameter;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getParameter() {
return parameter;
}
public void setParameter(String parameter) {
this.parameter = parameter;
}
public String execute() {
if ("lwc".equals(name))
return "success";
return "error";
}
public String myMethod() {
System.out.println(parameter);
if ("lwc".equals(name))
return "success";
return "error";
}
}