在公司接触了半年的前台界面的调整,近期在回顾框架知识,写成功了一个Struts1的入门实例,作为保存:
1.首先要建立一个WEB项目,导入Struts1的架包和配置文件(struts-config.xml)
2.在web.xml文件中配置Struts1的核心控制器ActionServlet(因为我扩展了ActionServlet,所以此处指定的是扩展后的类)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>com.wch.struts1.exer.filter.EncodingFilter</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2.编写JSP页面
先付上我的项目结构:
附上index.jsp的代码
<body>
<form action="loginAction.do" method="post">
userName:<input type="text" name="username"/>
password:<input type="password" name="password"/>
<input type="submit" value="登录">
</form>
</body>
loginError.jsp
<body>
<h1>ABC<%=request.getAttribute("errorMessage") %></h1>
</body>
Welcome.jsp
<body>
<h1>欢迎来到Struts1天地</h1>
</body>
3.扩展的ActionServlet类:
package com.wch.struts1.exer.filter;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionServlet;
public class EncodingFilter extends ActionServlet {
@Override
protected void process(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
// TODO Auto-generated method stub
String encoding= this.getInitParameter("encoding");
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
//response.setContentType("text/html;charset=utf-8");
super.process(request, response);
}
}
4.LoginAction(登录控制):
package com.wch.struts1.exer.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.wch.struts1.exer.form.UserForm;
public class LoginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String str="";
UserForm userForm = (UserForm)form;
if(userForm.getUsername().equals("")||userForm.getPassword().equals("")||userForm.getUsername()==null||userForm.getPassword()==null)
{
request.setAttribute("errorMessage", "用户名或密码不能为空");
str="loginError";
}else if(userForm.getUsername().equals("张三")&&userForm.getPassword().equals("123"))
{
str="success";
}else
{
request.setAttribute("errorMessage", "用户名或密码输入错误");
str="loginError";
}
return mapping.findForward(str);
}
}
5.然后就是Struts1的配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="userForm" type="com.wch.struts1.exer.form.UserForm"></form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/loginAction" name="userForm" type="com.wch.struts1.exer.action.LoginAction">
<forward name="login" path="/index.jsp"></forward>
<forward name="loginError" path="/error/loginError.jsp"></forward>
<forward name="success" path="/welcome/Welcome.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
最后发布到Tomcat服务器,启动服务器(确保不出错),运行http://localhost:8080/Struts1就可以了