为了便于理解和记忆整个过程,将学过的东西贴过来。项目整体结构:
java代码如下:
ActionForm负责对数据的包装。
- /*
- *GeneratedbyMyEclipseStruts
- *Templatepath:templates/java/JavaClass.vtl
- */
- packageprj30.form;
- importjavax.servlet.http.HttpServletRequest;
- importorg.apache.struts.action.ActionErrors;
- importorg.apache.struts.action.ActionForm;
- importorg.apache.struts.action.ActionMapping;
- /**
- *MyEclipseStruts
- *Creationdate:01-26-2010
- *
- *XDocletdefinition:
- *@struts.formname="regForm"
- */
- publicclassRegFormextendsActionForm{
- privateStringaccount;
- privateStringpassword;
- privateStringinfo;
- privateStringhiddenInfo;
- privateStringsex="girl";//可以通过ActionForm来设置表单的初始值。
- privateStringhome;
- privateString[]fav={"sing"};//可以用数组属性来存储传过来的多个同名表单元素。
- privatebooleaninterm;
- privateString[]books={"struts","hibernate"};
- publicString[]getBooks(){
- returnbooks;
- }
- publicvoidsetBooks(String[]books){
- this.books=books;
- }
- publicbooleanisInterm(){
- returninterm;
- }
- publicvoidsetInterm(booleaninterm){
- this.interm=interm;
- }
- publicString[]getFav(){
- returnfav;
- }
- publicvoidsetFav(String[]fav){
- this.fav=fav;
- }
- publicStringgetHome(){
- returnhome;
- }
- publicvoidsetHome(Stringhome){
- this.home=home;
- }
- publicStringgetSex(){
- returnsex;
- }
- publicvoidsetSex(Stringsex){
- this.sex=sex;
- }
- publicStringgetHiddenInfo(){
- returnhiddenInfo;
- }
- publicvoidsetHiddenInfo(StringhiddenInfo){
- this.hiddenInfo=hiddenInfo;
- }
- publicStringgetPassword(){
- returnpassword;
- }
- publicvoidsetPassword(Stringpassword){
- this.password=password;
- }
- publicStringgetInfo(){
- returninfo;
- }
- publicvoidsetInfo(Stringinfo){
- this.info=info;
- }
- publicStringgetAccount(){
- returnaccount;
- }
- publicvoidsetAccount(Stringaccount){
- this.account=account;
- }
- publicActionErrorsvalidate(ActionMappingmapping,
- HttpServletRequestrequest){
- returnnull;
- }
- publicvoidreset(ActionMappingmapping,HttpServletRequestrequest){
- //该函数是每次提交时都会调用的重新设置interm的值
- this.interm=false;
- }
- }
Action负责对数据的处理和jsp界面的跳转:
- /*
- *GeneratedbyMyEclipseStruts
- *Templatepath:templates/java/JavaClass.vtl
- */
- packageprj30.action;
- importjavax.servlet.http.HttpServletRequest;
- importjavax.servlet.http.HttpServletResponse;
- importorg.apache.struts.action.Action;
- importorg.apache.struts.action.ActionForm;
- importorg.apache.struts.action.ActionForward;
- importorg.apache.struts.action.ActionMapping;
- importprj30.form.RegForm;
- publicclassRegActionextendsAction{
- publicActionForwardexecute(ActionMappingmapping,ActionFormform,
- HttpServletRequestrequest,HttpServletResponseresponse){
- RegFormregForm=(RegForm)form;//TODOAuto-generatedmethodstub
- request.setAttribute("regForm",regForm);
- returnnewActionForward("/regResult.jsp");
- }
- }
哎,郁闷怎么没有jsp的代码格式呢!
为了对struts标签的学习,故写了一个注册表单界面和一个注册结果的界面。
- <%@pagelanguage="java"pageEncoding="gb2312"%>
- <%@tagliburi="http://struts.apache.org/tags-bean"prefix="bean"%>
- <%@tagliburi="http://struts.apache.org/tags-html"prefix="html"%>
- <html>
- <head>
- <title>JSPforRegFormform</title>
- </head>
- <body>
- <html:formaction="/reg"method="post">
- <!--property是元素的名称。-->
- 请您输入账号(文本框):<html:textproperty="account"></html:text><BR>
- 请输入您的密码(密码框):<html:passwordproperty="password"></html:password>
- <br>
- <!--注意:在Struts标签中,系统看到某个property,如果没有手动设置value,
- 就是调用个ActionFrom的get方法来设置初始值-->
- 请输入您的个人信息(多行文本框):<br>
- <html:textareaproperty="info"rows="6"cols="40"></html:textarea>
- <br><html:hiddenproperty="hiddenInfo"value="welcome爱你一万年"></html:hidden>
- <br>
- 请选择性别(单选按钮):<html:radioproperty="sex"value="boy"></html:radio>男
- <html:radioproperty="sex"value="girl"></html:radio>女<br>
- 籍贯(下拉菜单):<html:selectproperty="home"value="lfjieshi">
- <html:optionvalue="lfjieshi">陆丰碣石</html:option>
- <html:optionvalue="lfdonghai">陆丰东海</html:option>
- <html:optionvalue="lfjiazi">陆丰甲子</html:option>
- </html:select><BR>
- 爱好(多项复选框):
- <html:multiboxproperty="fav"value="sing"></html:multibox>唱歌
- <html:multiboxproperty="fav"value="swim"></html:multibox>游泳
- <html:multiboxproperty="fav"value="playgame"></html:multibox>
- <html:multiboxproperty="fav"value="dance">跳舞</html:multibox><br>
- 是否会员(单选复选框):
- <html:checkboxproperty="interm"></html:checkbox><br>
- 选择您喜欢的书本(多选下拉类表框):
- <html:selectproperty="books"multiple="true"size="6">
- <html:optionvalue="database">数据库</html:option>
- <html:optionvalue="struts">struts框架</html:option>
- <html:optionvalue="spring">spring框架</html:option>
- <html:optionvalue="hibernate">hibernate框架</html:option>
- </html:select>
- <html:submitvalue="提交注册信息"></html:submit>
- </html:form>
- </body>
- </html>
- <%@pagelanguage="java"pageEncoding="gb2312"%>
- <%@pageimport="prj30.form.RegForm"%>
- <%@tagliburi="http://struts.apache.org/tags-bean"prefix="bean"%>
- <%@tagliburi="http://struts.apache.org/tags-html"prefix="html"%>
- <html>
- <head>
- <title>注册处理结果界面</title>
- </head>
- <body>
- <%RegFormregForm=(RegForm)request.getAttribute("regForm");%>
- 账号:<%=regForm.getAccount()%><br>
- 密码:<%=regForm.getPassword()%><br>
- 个人信息:<%=regForm.getInfo()%><br>
- 隐藏的表单is:<%=regForm.getHiddenInfo()%><BR>
- 性别:<%=regForm.getSex()%><BR>
- 籍贯:<%=regForm.getHome()%><BR>
- 爱好:<%
- String[]fav=regForm.getFav();
- for(inti=0;i<fav.length;i++){
- out.println(fav[i]);
- }
- %><br>
- 是否会员:<%=regForm.isInterm()%><br>
- 选择的书本是:<%
- String[]books=regForm.getBooks();
- for(inti=0;i<books.length;i++){
- out.println(books[i]);
- }%>
- </body>
- </html>
配置文件是直接使用图形界面操作的,代码贴下来有空也可以研究研究
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!DOCTYPEstruts-configPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration1.3//EN""http://struts.apache.org/dtds/struts-config_1_3.dtd">
- <struts-config>
- <form-beans>
- <form-beanname="regForm"type="prj30.form.RegForm"/>
- </form-beans>
- <global-exceptions/>
- <global-forwards/>
- <action-mappings>
- <!--attribute="regForm"
- input="/reg.jsp"scope="request"-->
- <action
- name="regForm"
- path="/reg"
- type="prj30.action.RegAction"/>
- </action-mappings>
- <message-resourcesparameter="prj30.ApplicationResources"/>
- </struts-config>
暂时搁浅!