struts标签学习(低版本)

来源:互联网 发布:面包树上的女人 知乎 编辑:程序博客网 时间:2024/05/13 13:55

为了便于理解和记忆整个过程,将学过的东西贴过来。项目整体结构:

   

java代码如下:

ActionForm负责对数据的包装。

Code:
  1. /*  
  2.  * Generated by MyEclipse Struts  
  3.  * Template path: templates/java/JavaClass.vtl  
  4.  */  
  5. package prj30.form;   
  6.   
  7. import javax.servlet.http.HttpServletRequest;   
  8. import org.apache.struts.action.ActionErrors;   
  9. import org.apache.struts.action.ActionForm;   
  10. import org.apache.struts.action.ActionMapping;   
  11.   
  12. /**   
  13.  * MyEclipse Struts  
  14.  * Creation date: 01-26-2010  
  15.  *   
  16.  * XDoclet definition:  
  17.  * @struts.form name="regForm"  
  18.  */  
  19. public class RegForm extends ActionForm {      
  20.     private String account;   
  21.     private String password;   
  22.     private String info;   
  23.     private String hiddenInfo;   
  24.     private String sex="girl";//可以通过ActionForm来设置表单的初始值。   
  25.     private String home;   
  26.     private String[] fav={"sing"};//可以用数组属性来存储传过来的多个同名表单元素。   
  27.     private boolean interm;   
  28.     private String[] books={"struts","hibernate"};   
  29.        
  30.     public String[] getBooks() {   
  31.         return books;   
  32.     }   
  33.   
  34.     public void setBooks(String[] books) {   
  35.         this.books = books;   
  36.     }   
  37.   
  38.     public boolean isInterm() {   
  39.         return interm;   
  40.     }   
  41.   
  42.     public void setInterm(boolean interm) {   
  43.         this.interm = interm;   
  44.     }   
  45.   
  46.     public String[] getFav() {   
  47.         return fav;   
  48.     }   
  49.   
  50.     public void setFav(String[] fav) {   
  51.         this.fav = fav;   
  52.     }   
  53.   
  54.     public String getHome() {   
  55.         return home;   
  56.     }   
  57.   
  58.     public void setHome(String home) {   
  59.         this.home = home;   
  60.     }   
  61.   
  62.     public String getSex() {   
  63.         return sex;   
  64.     }   
  65.   
  66.     public void setSex(String sex) {   
  67.         this.sex = sex;   
  68.     }   
  69.   
  70.     public String getHiddenInfo() {   
  71.         return hiddenInfo;   
  72.     }   
  73.   
  74.     public void setHiddenInfo(String hiddenInfo) {   
  75.         this.hiddenInfo = hiddenInfo;   
  76.     }   
  77.   
  78.     public String getPassword() {   
  79.         return password;   
  80.     }   
  81.   
  82.     public void setPassword(String password) {   
  83.         this.password = password;   
  84.     }   
  85.   
  86.     public String getInfo() {   
  87.         return info;   
  88.     }   
  89.   
  90.     public void setInfo(String info) {   
  91.         this.info = info;   
  92.     }   
  93.   
  94.     public String getAccount() {   
  95.         return account;   
  96.     }   
  97.   
  98.     public void setAccount(String account) {   
  99.         this.account = account;   
  100.     }   
  101.   
  102.     public ActionErrors validate(ActionMapping mapping,   
  103.             HttpServletRequest request) {   
  104.            
  105.         return null;   
  106.     }   
  107.   
  108.     public void reset(ActionMapping mapping, HttpServletRequest request) {   
  109.         //该函数是每次提交时都会调用的 重新设置interm的值   
  110.         this.interm=false;   
  111.            
  112.     }   
  113. }  

Action负责对数据的处理和jsp界面的跳转:

Code:
  1. /*  
  2.  * Generated by MyEclipse Struts  
  3.  * Template path: templates/java/JavaClass.vtl  
  4.  */  
  5. package prj30.action;   
  6.   
  7. import javax.servlet.http.HttpServletRequest;   
  8. import javax.servlet.http.HttpServletResponse;   
  9.   
  10. import org.apache.struts.action.Action;   
  11. import org.apache.struts.action.ActionForm;   
  12. import org.apache.struts.action.ActionForward;   
  13. import org.apache.struts.action.ActionMapping;   
  14.   
  15. import prj30.form.RegForm;   
  16.   
  17. public class RegAction extends Action {   
  18.   
  19.     public ActionForward execute(ActionMapping mapping, ActionForm form,   
  20.             HttpServletRequest request, HttpServletResponse response) {   
  21.         RegForm regForm = (RegForm) form;// TODO Auto-generated method stub   
  22.         request.setAttribute("regForm", regForm);   
  23.            
  24.         return new ActionForward("/regResult.jsp");   
  25.     }   
  26. }  

哎,郁闷怎么没有jsp的代码格式呢!

为了对struts标签的学习,故写了一个注册表单界面和一个注册结果的界面。

Code:
  1. <%@ page language="java" pageEncoding="gb2312"%>  
  2. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>    
  3. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>  
  4.     
  5. <html>    
  6.     <head>  
  7.         <title>JSP for RegForm form</title>  
  8.     </head>  
  9.     <body>  
  10.         <html:form action="/reg" method="post">  
  11.            <!-- property是元素的名称。 -->  
  12.          请您输入账号(文本框):<html:text property="account"></html:text><BR>  
  13.          请输入您的密码(密码框):<html:password property="password" ></html:password>  
  14.          <br>  
  15.          <!-- 注意:在Struts标签中,系统看到某个property,如果没有手动设置value,   
  16.          就是调用个ActionFrom的get方法来设置初始值 -->  
  17.          请输入您的个人信息(多行文本框):<br>  
  18.          <html:textarea property="info" rows="6" cols="40"></html:textarea>  
  19.           <br><html:hidden property="hiddenInfo" value="welcome 爱你一万年"></html:hidden>  
  20.           <br>  
  21.           请选择性别(单选按钮):<html:radio property="sex" value="boy"></html:radio>男   
  22.                     <html:radio property="sex" value="girl"></html:radio><br>  
  23.          籍贯(下拉菜单):<html:select property="home" value="lfjieshi">  
  24.               <html:option value="lfjieshi">陆丰碣石</html:option>  
  25.               <html:option value="lfdonghai">陆丰东海</html:option>  
  26.               <html:option value="lfjiazi">陆丰甲子</html:option>  
  27.          </html:select><BR>  
  28.          爱好(多项复选框):   
  29.          <html:multibox property="fav" value="sing"></html:multibox>唱歌   
  30.          <html:multibox property="fav" value="swim"></html:multibox>游泳   
  31.          <html:multibox property="fav" value="playgame"></html:multibox>  
  32.          <html:multibox property="fav" value="dance">跳舞</html:multibox><br>  
  33.          是否会员(单选复选框):   
  34.          <html:checkbox property="interm"></html:checkbox><br>  
  35.          选择您喜欢的书本(多选下拉类表框):   
  36.          <html:select property="books" multiple="true" size="6">  
  37.                   <html:option value="database">数据库</html:option>  
  38.                   <html:option value="struts">struts框架</html:option>  
  39.                   <html:option value="spring">spring框架</html:option>  
  40.                   <html:option value="hibernate">hibernate框架</html:option>  
  41.          </html:select>  
  42.           <html:submit value="提交注册信息"></html:submit>  
  43.         </html:form>  
  44.     </body>  
  45. </html>  
  46.   
Code:
  1. <%@ page language="java" pageEncoding="gb2312"%>  
  2. <%@page import="prj30.form.RegForm"%>  
  3. <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>    
  4. <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>  
  5.     
  6. <html>    
  7.     <head>  
  8.         <title>注册处理结果界面</title>  
  9.     </head>  
  10.     <body>  
  11.         <%RegForm regForm=(RegForm)request.getAttribute("regForm"); %>  
  12.         账号:<%=regForm.getAccount() %><br>  
  13.         密码:<%=regForm.getPassword() %><br>  
  14.         个人信息:<%=regForm.getInfo() %><br>       
  15.         隐藏的表单is:<%=regForm.getHiddenInfo() %><BR>  
  16.         性别:<%=regForm.getSex() %><BR>  
  17.         籍贯:<%=regForm.getHome() %><BR>  
  18.         爱好:<%   
  19.            String[] fav=regForm.getFav();   
  20.            for(int i=0;i<fav.length;i++){   
  21.            out.println(fav[i]);   
  22.            }   
  23.          %><br>  
  24.          是否会员:<%=regForm.isInterm() %><br>  
  25.          选择的书本是:<%   
  26.            String[] books=regForm.getBooks();   
  27.            for(int i=0;i<books.length;i++){   
  28.            out.println(books[i]);   
  29.            }%>  
  30.     </body>  
  31. </html>  
  32.   

配置文件是直接使用图形界面操作的,代码贴下来有空也可以研究研究

Code:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">  
  3.   
  4. <struts-config>  
  5.   <form-beans >  
  6.     <form-bean name="regForm" type="prj30.form.RegForm" />  
  7.   </form-beans>  
  8.   
  9.   <global-exceptions />  
  10.   <global-forwards />  
  11.   <action-mappings >  
  12.   <!--  attribute="regForm"  
  13.       input="/reg.jsp" scope="request" -->  
  14.     <action  
  15.       name="regForm"  
  16.       path="/reg"    
  17.       type="prj30.action.RegAction" />  
  18.   </action-mappings>  
  19.   
  20.   <message-resources parameter="prj30.ApplicationResources" />  
  21. </struts-config>  
  22.   

暂时搁浅!

 

原创粉丝点击