今天无聊,想自己学习一下struts2.自己做了一个简单的例子。

 

   struts2必要的jar包

  • commons-logging-1.0.4.jar
  • commons-fileupload-1.2.1.jar
  • freemarker-2.3.16.jar
  • ognl-3.0.jar
  • struts2-core-2.2.1.jar
  • xwork-core-2.2.1.jar

注意的是struts.xml,必须在class目录。也就是在编译环境下src目录下。

 

struts2小结_休闲 

下面把例子奉上。

struts.xml

 

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE struts PUBLIC     
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"     
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd"> 
  5. <struts> 
  6. <!-- namesepace=""JSP页面请求的地址。注意完整的请求地址是/namesepace/action-->
  7. <!-- 这对应的是应是/user/user-->
  8.     <package name="default" namespace="/user" extends="struts-default"> 
  9.  
  10. <!-- mentond 在请求到action,要执行的方法-->
  11.         <action name="user" method="login" class="com.user.atction.UserAction"> 
  12.             <result name="success">success.jsp</result> 
  13.             <result name="error">error.jsp</result> 
  14.         </action> 
  15.     </package> 
  16. </struts> 

 

 

struts.properties

 

  1. struts.i18n.encoding=gb2312  

 

action

 

  1. package com.user.atction;  
  2.  
  3. import javax.persistence.EntityManagerFactory;  
  4. import javax.persistence.Persistence;  
  5.  
  6. import com.daoimp.Userimp;  
  7. import com.entity.User;  
  8. import com.opensymphony.xwork2.ActionSupport;  
  9.  
  10. public class UserAction extends ActionSupport {  
  11.  
  12.     private static final long serialVersionUID = 1L;  
  13.  
  14.     private String username;  
  15.  
  16.     private String password;  
  17.  
  18.     public String getPassword() {  
  19.         return password;  
  20.     }  
  21.  
  22.     public void setPassword(String password) {  
  23.         this.password = password;  
  24.     }  
  25.  
  26.     public String getUsername() {  
  27.         return username;  
  28.     }  
  29.  
  30.     public void setUsername(String username) {  
  31.         this.username = username;  
  32.     }  
  33.  
  34.     public String login() {  
  35. //持久层的JPA代码
  36.         EntityManagerFactory factory = Persistence  
  37.                 .createEntityManagerFactory("JpaTest");  
  38.         Userimp userDao = new Userimp();  
  39.         userDao.setManager(factory.createEntityManager());  
  40.  
  41.         User user = new User();  
  42.         user.setUserName(this.getUsername());  
  43.         user.setPassWord(this.getPassword());  
  44.         String url = "error";  
  45.         if (userDao.findUser(user) != null) {  
  46.             url = "success";  
  47.         }  
  48.         return url;  
  49.  
  50.     }  

在struts2中,不需要request.getParameter(xxx)获取JSP页面中form表单中的值,struts已经为我们封装好了。

只要在action中,声明一个属性,有get()和set(),在action获取值。

 

  1. <s:form action="user/user" method="post" > 
  2. <!-- 这里的name="username"对应action属性中的 private String username-->
  3.     user:<input type="text" name="username"/> 
  4.  
  5. <!-- 这里的name="password"对应action属性中的 private String password-->
  6.     pass:<input type="password" name="password"/> 
  7.     <s:submit/> 
  8.  </s:form>