刚刚开始学习Struts2,创建一个简单的用户登陆实例来练一下手
1、到apache官网下载Struts2的包,我这里下好的是struts-2.3.20-all.zip,解压后再将apps文件夹里的struts2-blank.war解压,将解压出来的文件拷到WEB工程的lib下。再在web.xml中加入Struts2的过滤器,在struts2安装包里找到web.xml文件,将里面的<filter>和<filter-mapping>标签及其内容拷贝进项目中的web.config文件即可。如下:
<?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"
id="WebApp_ID" version="3.0">
<display-name>ZDemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.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>
2. 登陆页面 index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<center>
<form action="userAction" >
<input type="text" name="user.username"><br>
<input type="password" name="user.password"><br>
<input type="submit">
</form>
</center>
</body>
</html>
3. 写struts.xml实现跳转
注意: action name=“userAction”要与index.jsp form标签里的action名一致
<?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>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="userLoginPackage" extends="struts-default">
<action name="userAction" class="com.unicom.demo.action.UserAction"
method="execute">
<result name="success">/loginSuccess.jsp</result>
<result name="error">/loginError.jsp</result>
</action>
</package>
<!-- Add packages here -->
</struts>
4. 接下来就要写User属性
public class User {
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
private String username;
private String password;
注意:在if语句中用“test”.equals(user.getUsername())的方式进行判断,以防出现空指针错误
public class UserAction extends ActionSupport {
private static final long serialVersionUID = 1L;
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
private User user;
@Override
public String execute() throws Exception {
// System.out.println("here!!!!!!!!!!!!!!!!");
// System.out.println(user.getUsername());
if ("test".equals(user.getUsername())
&& "test".equals(user.getPassword())) {
return "success";
}else {
return "error";
}
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Login Success</h1>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Login Failure</h1>
</body>
</html>
7. run on server就大功告成啦!