<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    176142998

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks
    Struts.xml 文件

    Java代碼
    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.     <constant name="struts.enable.DynamicMethodInvocation" value="true" />   
    7.     <constant name="struts.devMode" value="true" />   
    8.     <include file="helloworld.xml"/>   
    9. </struts>  


    HelloWorld.xml

    Java代碼
    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.     <include file="struts-default.xml"/>   
    7.     <package name="helloworld" namespace="/" extends="struts-default">   
    8.         <interceptors>   
    9.             <interceptor name ="authentication" class ="com.jamesby.struts2.LogonInterceptor"/>    
    10.             <interceptor-stack name="helloWorldStack">   
    11.                 <interceptor-ref name="authentication"/>   
    12.                 <interceptor-ref name="paramsPrepareParamsStack"/>   
    13.             </interceptor-stack>   
    14.         </interceptors>     
    15.         <default-interceptor-ref name="helloWorldStack"/>   
    16.         <global-results>   
    17.             <result name="login">/WEB-INF/jsp/Logon.jsp</result>                   
    18.                   </global-results>          
    19.         <action name="Logon_*" method="{1}" class="com.jamesby.struts2.Logon">   
    20.             <interceptor-ref name="paramsPrepareParamsStack"/>           
    21.             <result type="redirect-action">Main</result>   
    22.             <result name="input">/WEB-INF/jsp/Logon.jsp</result>           
    23.         </action>   
    24.         <action name="crud" method="{1}" class="com.jamesby.struts2.UserAction">   
    25.             <result name="list">/WEB-INF/jsp/userList.jsp</result>              <result name="success" type="redirect-action">crud!list</result>   
    26.             <result name="input">/WEB-INF/jsp/userForm.jsp</result>   
    27.         </action>   
    28.         <action name="*" class="com.jamesby.struts2.ExampleSupport">   
    29.             <result>/WEB-INF/jsp/{1}.jsp</result>   
    30.         </action>            
    31.     </package>   
    32. </struts>  


    LogonInterceptor.java

    Java代碼
    1. package com.jamesby.struts2;   
    2. import java.util.Map;   
    3. import com.jamesby.struts2.persist.User;   
    4. import com.opensymphony.xwork2.Action;   
    5. import com.opensymphony.xwork2.ActionInvocation;   
    6. import com.opensymphony.xwork2.interceptor.AbstractInterceptor;   
    7. public class LogonInterceptor extends AbstractInterceptor{   
    8.     @Override  
    9.     public String intercept(ActionInvocation ai) throws Exception {   
    10.         Map session = ai.getInvocationContext().getSession();   
    11.         User user = (User) session.get("user");   
    12.         if (null != user) {   
    13.             return ai.invoke();   
    14.         } else {   
    15.             return Action.LOGIN;   
    16.         }   
    17.     }   
    18. }  


    Logon.java

    Java代碼
    1. package com.jamesby.struts2;   
    2. import java.util.Map;   
    3. import org.apache.struts2.interceptor.SessionAware;   
    4. import org.apache.struts2.interceptor.validation.SkipValidation;   
    5. import com.jamesby.struts2.persist.DataBaseMock;   
    6. import com.jamesby.struts2.persist.User;   
    7. import com.opensymphony.xwork2.ActionSupport;   
    8. public class Logon extends ActionSupport implements SessionAware {   
    9.     private Map session;   
    10.     public void setSession(Map session) {   
    11.         this.session = session;   
    12.     }   
    13.     @SkipValidation  
    14.     public String doInput() throws Exception {   
    15.         return INPUT;   
    16.     }   
    17.     public String doLogon() throws Exception {   
    18.         User user = DataBaseMock.selectUserByUsernameAndPassword(getUsername(),   
    19.                 getPassword());   
    20.         if (null == user)   
    21.             return INPUT;   
    22.         session.put("user", user);   
    23.         return SUCCESS;   
    24.     }   
    25.     private String username;   
    26.     public String getUsername() {   
    27.         return username;   
    28.     }   
    29.     public void setUsername(String username) {   
    30.         this.username = username;   
    31.     }   
    32.     private String password;   
    33.     public String getPassword() {   
    34.         return password;   
    35.     }   
    36.     public void setPassword(String password) {   
    37.         this.password = password;   
    38.     }   
    39. }  


    UserAction.java

    Java代碼
    1. package com.jamesby.struts2;   
    2. import java.util.ArrayList;   
    3. import java.util.HashMap;   
    4. import java.util.List;   
    5. import org.apache.struts2.interceptor.validation.SkipValidation;   
    6. import com.jamesby.struts2.persist.DataBaseMock;   
    7. import com.jamesby.struts2.persist.User;   
    8. import com.opensymphony.xwork2.ActionSupport;   
    9. public class UserAction  extends ActionSupport {   
    10.     private User user=new User();   
    11.     private List<User> userList;   
    12.     public List<HashMap> getSexArray() {   
    13.         List<HashMap> sexArray = new ArrayList<HashMap>();   
    14.         HashMap male = new HashMap();   
    15.         male.put("key",new Integer(1));   
    16.         male.put("value","男");   
    17.         HashMap female = new HashMap();   
    18.         female.put("key",new Integer(2));   
    19.         female.put("value","女");           
    20.         sexArray.add(male);   
    21.         sexArray.add(female);   
    22.         return sexArray;   
    23.     }      
    24.     public List<HashMap> getFromArray() {   
    25.         List<HashMap> fromArray = new ArrayList<HashMap>();   
    26.         HashMap bj = new HashMap();   
    27.         bj.put("id",new Integer(1));   
    28.         bj.put("name","北京");   
    29.         HashMap sh = new HashMap();   
    30.         sh.put("id",new Integer(2));   
    31.         sh.put("name","上海");           
    32.         HashMap tj = new HashMap();   
    33.         tj.put("id",new Integer(3));   
    34.         tj.put("name","天津");   
    35.         fromArray.add(bj);   
    36.         fromArray.add(sh);   
    37.         fromArray.add(tj);   
    38.         return fromArray;   
    39.     }   
    40.     @SkipValidation  
    41.     public String doList() throws Exception {   
    42.         userList = DataBaseMock.selectAllUser();   
    43.         return "list";   
    44.     }   
    45.     @SkipValidation  
    46.     public String doInput() {   
    47.         return INPUT;   
    48.     }      
    49.     public String doSave() {   
    50.         if (null == user.getUserid()) {   
    51.             user.setUserid(new Integer(DataBaseMock.getNewUserId()));   
    52.             DataBaseMock.saveUser(user);   
    53.         }else  
    54.         {   
    55.             DataBaseMock.updateUser(user);   
    56.         }   
    57.         return SUCCESS;   
    58.     }   
    59.     @SkipValidation  
    60.     public String doRead()   
    61.     {   
    62.         user = DataBaseMock.getUser(user.getUserid());   
    63.         return INPUT;   
    64.     }   
    65.     @SkipValidation  
    66.     public String doDelete() {   
    67.         DataBaseMock.deleteUser(user);   
    68.         return SUCCESS;   
    69.     }          
    70.     public List<User> getUserList() {   
    71.         return userList;   
    72.     }   
    73.     public void setUserList(List<User> userList) {   
    74.         this.userList = userList;   
    75.     }   
    76.     public User getUser() {   
    77.         return user;   
    78.     }   
    79.     public void setUser(User user) {   
    80.         this.user = user;   
    81.     }   
    82. }  


    ExampleSupport.java

    Java代碼
    1. package com.jamesby.struts2;   
    2. import com.opensymphony.xwork2.ActionSupport;   
    3. public class ExampleSupport extends ActionSupport {   
    4. }  


    User.java

    Java代碼
    1. package com.jamesby.struts2.persist;   
    2. public class User {   
    3.     private Integer userid;   
    4.     private String username;   
    5.     private String password;   
    6.     private int sex;   
    7.     private int age;   
    8.     private int from;   
    9.     public int getFrom() {   
    10.         return from;   
    11.     }   
    12.     public void setFrom(int from) {   
    13.         this.from = from;   
    14.     }   
    15.     public String getPassword() {   
    16.         return password;   
    17.     }   
    18.     public void setPassword(String password) {   
    19.         this.password = password;   
    20.     }   
    21.     public int getSex() {   
    22.         return sex;   
    23.     }   
    24.     public void setSex(int sex) {   
    25.         this.sex = sex;   
    26.     }   
    27.     public Integer getUserid() {   
    28.         return userid;   
    29.     }   
    30.     public void setUserid(Integer userid) {   
    31.         this.userid = userid;   
    32.     }   
    33.     public String getUsername() {   
    34.         return username;   
    35.     }   
    36.     public void setUsername(String username) {   
    37.         this.username = username;   
    38.     }   
    39.     public int getAge() {   
    40.         return age;   
    41.     }   
    42.     public void setAge(int age) {   
    43.         this.age = age;   
    44.     }   
    45. }  


    DataBaseMock.java

    Java代碼
    1. package com.jamesby.struts2.persist;   
    2. import java.util.ArrayList;   
    3. import java.util.List;   
    4. public class DataBaseMock {   
    5.     private static List<User> _cache = new ArrayList<User>();   
    6.     private static int userid = 0;   
    7.     static {   
    8.         User user = new User();   
    9.         user.setUserid(new Integer(0));   
    10.         user.setUsername("admin");   
    11.         user.setPassword("12345688");   
    12.         user.setFrom(1);// 北京   
    13.         user.setSex(1);// 男   
    14.         user.setAge(18);   
    15.         _cache.add(user);   
    16.     }   
    17.     public static User selectUserByUsernameAndPassword(String username,String password)   
    18.     {   
    19.         for (User u : _cache) {   
    20.             if (u.getUsername().equals(username)&&u.getPassword().equals(password)) {   
    21.                 return u;   
    22.             }   
    23.         }   
    24.         return null;   
    25.     }   
    26.     public static List<User> selectAllUser()   
    27.     {   
    28.         return _cache;   
    29.     }   
    30.     public static int getNewUserId() {   
    31.         return ++userid;   
    32.     }   
    33.     public static void saveUser(User user) {   
    34.         _cache.add(user);   
    35.     }   
    36.     public static void updateUser(User user) {   
    37.         deleteUser(user);   
    38.         saveUser(user);   
    39.     }   
    40.     public static void deleteUser(User user) {   
    41.         for (User u : _cache) {   
    42.             if (u.getUserid().intValue() == user.getUserid().intValue()) {   
    43.                 _cache.remove(u);   
    44.                 break;   
    45.             }   
    46.         }   
    47.     }   
    48.     public static User getUser(Integer userid) {   
    49.         return _cache.get(userid);   
    50.     }   
    51. }  


    Logon-validation.xml

    Java代碼
    1. <!DOCTYPE validators PUBLIC    
    2. "-//OpenSymphony Group//XWork Validator 1.0.2//EN"    
    3. "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">   
    4. <validators>   
    5.     <field name="username">   
    6.         <field-validator type="requiredstring">   
    7.             <message key="requiredstring"/>   
    8.         </field-validator>   
    9.     </field>   
    10.     <field name="password">   
    11.         <field-validator type="requiredstring">   
    12.             <message key="requiredstring"/>   
    13.         </field-validator>   
    14.     </field>   
    15. </validators>  


    UserAction-validation.xml

    Java代碼
    1. <!DOCTYPE validators PUBLIC    
    2. "-//OpenSymphony Group//XWork Validator 1.0.2//EN"    
    3. "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">   
    4. <validators>   
    5.   <field name="user.username">   
    6.      <field-validator type="requiredstring">   
    7.         <message key="errors.required.username"/>   
    8.       </field-validator>   
    9.   </field>   
    10.   <field name="user.password">   
    11.      <field-validator type="requiredstring">   
    12.         <message key="errors.required.password"/>   
    13.       </field-validator>   
    14.   </field>   
    15.   <field name="user.sex">   
    16.      <field-validator type="required">   
    17.         <message key="errors.required.sex"/>   
    18.       </field-validator>   
    19.   </field>     
    20.   <field name="user.age">   
    21.      <field-validator type="required" short-circuit="true">   
    22.         <message key="errors.required.age"/>   
    23.       </field-validator>   
    24.       <field-validator type="int">   
    25.         <param name="min">18</param>   
    26.         <param name="max">65</param>   
    27.         <message key="errors.required.age.limit"/>   
    28.       </field-validator>   
    29.   </field>   
    30.   <field name="user.from">   
    31.      <field-validator type="required">   
    32.         <message key="errors.required.from"/>   
    33.       </field-validator>   
    34.   </field>       
    35. </validators>  


    package.properties

    Java代碼
    1. requiredstring = $\{getText(fieldName)} is required.   
    2. password = Password   
    3. username = User Name   
    4. main.message = This is main page...................   
    5. label.userList= All User List   
    6.   
    7. user.username=Username   
    8. user.password=Password   
    9. user.sex=Sex   
    10. user.age=Age   
    11. user.from=From   
    12.   
    13. errors.required.username=Username is required   
    14. errors.required.password=Password is required   
    15. errors.required.sex=Sex is Required   
    16. errors.required.from=From is Required   
    17. errors.required.age.limit=Age between 18 and 65  
    18. errors.required.age.limit=Age between 18 and 65  


    Logon.jsp

    Java代碼
    1. <%@ taglib prefix="s" uri="/struts-tags" %>   
    2. <html>   
    3. <head>   
    4.   <title>Logon</title>   
    5. </head>   
    6. <body>   
    7. <s:form action="Logon!logon">    
    8.   <s:textfield label="%{getText('username')}" name="username"/>   
    9.   <s:password label="%{getText('password')}" name="password" />   
    10.   <s:submit/>   
    11. </s:form>   
    12. </body>   
    13. </html>  


    userList.jsp

    Java代碼
    1. <%@ page contentType="text/html;charset=GBK"%>   
    2. <%@taglib prefix="s" uri="/struts-tags" %>   
    3.   
    4. <head>   
    5.     <title><s:text name="label.userList"/></title>   
    6. </head>   
    7.   
    8. <s:url id="url" action="crud!input" />   
    9. <a href="<s:property value="#url"/>">Add New User</a>   
    10. <br>   
    11. <table border="1">   
    12.     <tr class="<s:if test="#status.even">even</s:if><s:else>odd</s:else>">   
    13.         <td>用戶ID</td>   
    14.         <td>用戶名</td>   
    15.         <td>性別</td>   
    16.         <td>年齡</td>   
    17.         <td>來自</td>   
    18.         <td>修改</td>   
    19.         <td>刪除</td>   
    20.     </tr>    
    21. <s:iterator value="userList" status="status">   
    22.     <tr class="<s:if test="#status.even">even</s:if><s:else>odd</s:else>">   
    23.         <td><s:property value="userid" /></td>   
    24.         <td><s:property value="username" /></td>   
    25.         <td>   
    26.             <s:if test="sex==1">男</s:if>   
    27.             <s:else>女</s:else>   
    28.         </td>   
    29.         <td><s:property value="age" /></td>   
    30.         <td>   
    31.             <s:if test="from==1">北京</s:if>   
    32.             <s:if test="from==2">上海</s:if>   
    33.             <s:if test="from==3">天津</s:if>   
    34.         </td>   
    35.         <td>   
    36.             <a href="crud!read.action?user.userid=<s:property value="userid" />">修改</a>   
    37.         </td>   
    38.         <td>   
    39.             <a href="crud!delete.action?user.userid=<s:property value="userid" />">刪除</a>   
    40.         </td>   
    41.     </tr>    
    42. </s:iterator>   
    43. </table>  



    userForm.jsp

    Java代碼
    1. <%@ page contentType="text/html;charset=GBK"%>   
    2. <%@taglib prefix="s" uri="/struts-tags" %>   
    3. User Form   
    4. <s:form action="crud!save.action" method="post">   
    5.     <s:textfield required="true" name="user.username" value="%{user.username}" label="%{getText('user.username')}" size="40"/>   
    6.     <s:textfield required="true" name="user.password" value="%{user.password}" label="%{getText('user.password')}" size="40"/>   
    7.     <s:radio required="true" name="user.sex" listKey="key" listValue="value" value="%{user.sex}" label="%{getText('user.sex')}" list="sexArray"/>   
    8.     <s:textfield required="true" name="user.age" value="%{user.age}" label="%{getText('user.age')}" size="40"/>   
    9.     <s:select label="%{getText('user.from')}" name="user.from" headerKey="" headerValue="Select From" list="fromArray" listKey="id" listValue="name" value="user.from" required="true"/>   
    10.     <s:hidden name="user.userid" value="%{user.userid}"/>   
    11.     <s:submit value="Submit"/>   
    12.     <s:submit value="Cancel" name="redirect-action:crud!list"/>   
    13. </s:form>  


    應(yīng)用程序目錄結(jié)構(gòu)

    Java代碼
    1. WEB-INF   
    2. │  web.xml   
    3. │   
    4. ├─classes   
    5. │  │  commons-logging.properties   
    6. │  │  helloworld.xml   
    7. │  │  log4j.properties   
    8. │  │  struts.properties   
    9. │  │  struts.xml   
    10. │  │   
    11. │  └─com   
    12. │      └─jamesby   
    13. │          └─struts2   
    14. │              │  ExampleSupport.class  
    15. │              │  Logon-validation.xml   
    16. │              │  Logon.class  
    17. │              │  LogonInterceptor.class  
    18. │              │  package.properties   
    19. │              │  UserAction-validation.xml   
    20. │              │  UserAction.class  
    21. │              │   
    22. │              └─persist   
    23. │                      DataBaseMock.class  
    24. │                      User.class  
    25. │   
    26. ├─jsp   
    27. │      Logon.jsp   
    28. │      Main.jsp   
    29. │      userForm.jsp   
    30. │      userList.jsp   
    31. │   
    32. ├─lib   
    33.        commons-collections-3.1.jar   
    34.        commons-logging-1.0.4.jar   
    35.        freemarker-2.3.8.jar   
    36.        log4j-1.2.9.jar   
    37.        ognl-2.6.11.jar   
    38.        struts2-core-2.0.6.jar   
    39.        xwork-2.0.1.jar  
    posted on 2008-08-04 00:26 飛飛 閱讀(337) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久久国产成人亚洲精品影院| 国产偷窥女洗浴在线观看亚洲| 亚洲色图古典武侠| 无遮挡a级毛片免费看| 四虎影永久在线高清免费| 亚洲成aⅴ人片久青草影院按摩| 免费看大美女大黄大色| 亚洲成在人线在线播放无码 | 国产精品亚洲综合| 国产精品黄页在线播放免费| 国产成人综合久久精品亚洲| 国产乱人免费视频| 一个人看的免费观看日本视频www| 亚洲综合精品网站| 韩日电影在线播放免费版| 亚洲va中文字幕无码久久不卡| 日韩免费高清大片在线| 亚洲av无码国产综合专区 | 亚洲国产精品第一区二区三区| 一级毛片试看60分钟免费播放| 亚洲精品二区国产综合野狼| 中文字幕免费视频| 亚洲日韩精品无码专区| 免费在线观看一级毛片| 伊人免费在线观看| 亚洲日产2021三区在线| 免费无码又爽又高潮视频| 一区二区三区AV高清免费波多| 亚洲AV日韩AV天堂一区二区三区| 国产一卡二卡3卡四卡免费| 69av免费视频| 色欲色欲天天天www亚洲伊| 337p日本欧洲亚洲大胆裸体艺术| 8888四色奇米在线观看免费看| 亚洲综合国产成人丁香五月激情| 亚洲AV中文无码乱人伦| 99精品国产成人a∨免费看| 亚洲国产成人久久精品大牛影视 | 国产亚洲精午夜久久久久久| 88av免费观看| 一级毛片免费在线|