一个Struts2的实例

  对Web应用程序而言,需要跨越HTTP协议的两个障碍——无状态和基于文本。

  在没有使用struts的时候,你会有一个很真切的体会,就是如何把html页面上的数据提交给后台处理,以什么格式提交?

这是个值得思索的问题。当然要是用Servlet就可以解决。但是在Servlet中要处理request中的各种参数。这些参数是String格式

要将这些String格式的数据转换成java中的类型。这是个枯燥且庞大的工程。

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String userString=request.getParameter("username");
        String password=request.getParameter("password");
         PrintWriter out = response.getWriter();
         out.println(userString);
    }

而使用了struts控件,就可以自动的获取前台html中的数据。并且可以自动的存储到javabean中。想想这是多么令人愉快的事情啊!

  就Struts的配置来说还是非常简单的。首先在WebContent/WEB-INF/lib中导入必须的包

如图:

其次在web.xml中配置FilterDispatcher

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app>

然后配置struts.xml文件(struts.xml必须小写,而且必须放到src目录下)

<?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">  
        <action name="LoginAction" class="action.LoginAction">  
            <result name="success">/success.jsp</result>  
        </action>  
    </package>  
</struts>

之后就是写action了。

package action;

public class LoginAction {
    private String username;  // 表单的请求参数被放入到动作(action)中名字匹配的属性上。(只要名字匹配,框架自动完成)
    private String password;
    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;
    }
    public String execute(){
        // 业务逻辑处理
        return "success";  //返回控制字符串,已选择应该被呈现的结果页面。从struts.xml可以看出返回到success.html页面。
    }

}
原文地址:https://www.cnblogs.com/heyesp/p/4424113.html