本文主要是介绍Struts1.2.4学习心得!(四),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第四次学习:这次学习碰到了与struts1.1很不同的地方,就是ActionForm类不仅仅是String型,可以是任意数据类型了.
1.表单录入(含bean的嵌套).
设有一个testBean类,这个类中又含有一个nested属性(nested为一个类的实例),当要为nested类的booleanProperty属性设定值时用nested.booleanProperty指定位置.下面例子录入数据时,数据填充到testBean和nested中去.
java代码: |
1 2<%@ taglib uri="/tags/struts-bean" prefix="bean" %> 3<%@ taglib uri="/tags/struts-html" prefix="html" %> 4<%@ taglib uri="/tags/struts-logic" prefix="logic" %> 5<html:html> 6 <head> 7 <title>Test struts-html Property Setters</title> 8 </head> 9 <body> 10 <div align="center"> 11 <h1>Test struts-html Property Setters</h1> 12 </div> 13 <p>Whatever changes you make to properties should be reflected when the page is redisplayed. Press "Save" to update, or "Cancel" to return to the main menu.</p> 14 <html:form action="/html-setters-submit"> 15 <table border=" 0" width=" 100%"> 16 <tr> 17 <th align="center" colspan=" 4">Scalar Properties</th> 18 </tr> 19 <tr> 20 <th align="right">booleanProperty</th> 21 <td align="left"> 22 <html:checkbox property="booleanProperty" /> 23 </td> 24 <th align="right">nested. booleanProperty</th> 25 <td align="left"> 26 <html:checkbox property="nested. booleanProperty" /> 27 </td> 28 </tr> 29 <tr> 30 <th align="right">doubleProperty</th> 31 <td align="left"> 32 <html:text property="doubleProperty" size=" 32" /> 33 </td> 34 <th align="right">nested. doubleProperty</th> 35 <td align="left"> 36 <html:text property="nested. doubleProperty" size=" 32" /> 37 </td> 38 </tr> 39 <tr> 40 <th align="right">floatProperty</th> 41 <td align="left"> 42 <html:text property="floatProperty" size=" 32" /> 43 </td> 44 <th align="right">nested. floatProperty</th> 45 <td align="left"> 46 <html:text property="nested. floatProperty" size=" 32" /> 47 </td> 48 </tr> 49 <tr> 50 <th align="right">intProperty</th> 51 <td align="left"> 52 <html:text property="intProperty" size=" 32" /> 53 </td> 54 <th align="right">nested. intProperty</th> 55 <td align="left"> 56 <html:text property="nested. intProperty" size=" 32" /> 57 </td> 58 </tr> 59 <tr> 60 <th align="right">longProperty</th> 61 <td align="left"> 62 <html:text property="longProperty" size=" 32" /> 63 </td> 64 <th align="right">nested. longProperty</th> 65 <td align="left"> 66 <html:text property="nested. longProperty" size=" 32" /> 67 </td> 68 </tr> 69 <tr> 70 <th align="right">stringProperty</th> 71 <td align="left"> 72 <html:text property="stringProperty" size=" 32" /> 73 </td> 74 <th align="right">nested. stringProperty</th> 75 <td align="left"> 76 <html:text property="nested. stringProperty" size=" 32" /> 77 </td> 78 </tr> 79 <tr> 80 <th align="center" colspan=" 4">Indexed Properties</th> 81 </tr> 82 <tr> 83 <th align="right">intIndexed [ 0 ]</th> 84 <td align="left"> 85 <html:text property="intIndexed [ 0 ]" size=" 32" /> 86 </td> 87 <th align="right">nested. intIndexed [ 0 ]</th> 88 <td align="left"> 89 <html:text property="nested. intIndexed [ 0 ]" size=" 32" /> 90 </td> 91 </tr> 92 <tr> 93 <th align="right">intIndexed [ 1 ]</th> 94 <td align="left"> 95 <html:text property="intIndexed [ 1 ]" size=" 32" /> 96 </td> 97 <th align="right">nested. intIndexed [ 1 ]</th> 98 <td align="left"> 99 <html:text property="nested. intIndexed [ 1 ]" size=" 32" /> 100 </td> 101 </tr> 102 <tr> 103 <th align="right">stringIndexed [ 0 ]</th> 104 <td align="left"> 105 <html:text property="stringIndexed [ 0 ]" size=" 32" /> 106 </td> 107 <th align="right">nested. stringIndexed [ 0 ]</th> 108 <td align="left"> 109 <html:text property="nested. stringIndexed [ 0 ]" size=" 32" /> 110 </td> 111 </tr> 112 <tr> 113 <th align="right">stringIndexed [ 1 ]</th> 114 <td align="left"> 115 <html:text property="stringIndexed [ 1 ]" size=" 32" /> 116 </td> 117 <th align="right">nested. stringIndexed [ 1 ]</th> 118 <td align="left"> 119 <html:text property="nested. stringIndexed [ 1 ]" size=" 32" /> 120 </td> 121 </tr> 122 <tr> 123 <td></td> 124 <td align="right"> 125 <html:submit>Save</html:submit> 126 </td> 127 <td align="left"> 128 <html:reset>Reset</html:reset> 129 <html:cancel>Cancel</html:cancel> 130 </td> 131 <td></td> 132 </tr> 133 </table> 134 </html:form> 135 </body> 136</html:html> 137 138 |
对应的TestBean
java代码:![]() |
1 2 /* 3 * $Header: /home/cvs/jakarta-struts/src/examples/org/apache/struts/webapp/exercise/TestBean.java,v 1.4 2004/03/14 06:23:52 sraeburn Exp $ 4 * $Revision: 1.4 $ 5 * $Date: 2004/03/14 06:23:52 $ 6 * 7 * Copyright 1999-2004 The Apache Software Foundation. 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22 23 package org. apache. struts. webapp. exercise; 24 25 26 import java. util. ArrayList; 27 import java. util. Collection; 28 import java. util. HashMap; 29 import java. util. List; 30 import java. util. Map; 31 import java. util. Vector; 32 import javax. servlet. http. HttpServletRequest; 33 import org. apache. struts. action. ActionForm; 34 import org. apache. struts. action. ActionMapping; 35 import org. apache. struts. util. LabelValueBean; 36 37 38 /** 39 * General purpose test bean for Struts custom tag tests. 40 * 41 * @version $Revision: 1.4 $ $Date: 2004/03/14 06:23:52 $ 42 */ 43 ![]() ...} 45 46 47 // ------------------------------------------------------------- Properties 48 49 50 /** 51 * A collection property where the elements of the collection are 52 * of type <code>LabelValueBean</code>. 53 */ 54 private Collection beanCollection = null; 55 ![]() ...} ![]() ...} 58 Vector entries = new Vector ( 10 ); 73 59 60 entries. add ( new LabelValueBean (" Label 0", "Value 0" ) ); 61 entries. add ( new LabelValueBean (" Label 1", "Value 1" ) ); 62 entries. add ( new LabelValueBean (" Label 2", "Value 2" ) ); 63 entries. add ( new LabelValueBean (" Label 3", "Value 3" ) ); 64 entries. add ( new LabelValueBean (" Label 4", "Value 4" ) ); 65 entries. add ( new LabelValueBean (" Label 5", "Value 5" ) ); 66 entries. add ( new LabelValueBean (" Label 6", "Value 6" ) ); 67 entries. add ( new LabelValueBean (" Label 7", "Value 7" ) ); 68 entries. add ( new LabelValueBean (" Label 8", "Value 8" ) ); 69 entries. add ( new LabelValueBean (" Label 9", "Value 9" ) ); 70 71 beanCollection = entries; 72 } 74 return (beanCollection ); 75 } ![]() ...} 78 this. beanCollection = beanCollection; 80 79 } 81 82 /** 83 * A multiple-String SELECT element using a bean collection. 84 */ 85 private String [ ] beanCollectionSelect = { "Value 1", "Value 3", 86 "Value 5" }; 87 ![]() ...} 89 return (this. beanCollectionSelect ); 91 90 } ![]() ...} 93 this. beanCollectionSelect = beanCollectionSelect; 95 94 } 96 97 /** 98 * A boolean property whose initial value is true. 99 */ 100 private boolean booleanProperty = true; 101 ![]() ...} 103 return (booleanProperty ); 105 104 } ![]() ...} 107 this. booleanProperty = booleanProperty; 109 108 } 110 111 /** 112 * A multiple-String SELECT element using a collection. 113 */ 114 private String [ ] collectionSelect = { "Value 2", "Value 4", 115 "Value 6" }; 116 ![]() ...} 118 return (this. collectionSelect ); 120 119 } ![]() ...} 122 this. collectionSelect = collectionSelect; 124 123 } 125 126 /** 127 * A double property. 128 */ 129 private double doubleProperty = 321. 0; 130 ![]() ...} 132 return (this. doubleProperty ); 134 133 } ![]() ...} 136 this. doubleProperty = doubleProperty; 138 137 } 139 140 /** 141 * A boolean property whose initial value is false 142 */ 143 private boolean falseProperty = false; 144 ![]() ...} 146 return (falseProperty ); 148 147 } ![]() ...} 150 this. falseProperty = falseProperty; 152 151 } 153 154 /** 155 * A float property. 156 */ 157 private float floatProperty = (float ) 123. 0; 158 ![]() ...} 160 return (this. floatProperty ); 162 161 } ![]() ...} 164 this. floatProperty = floatProperty; 166 165 } 167 168 /** 169 * Integer arrays that are accessed as an array as well as indexed. 170 */ 171 private int intArray [ ] = { 0, 10, 20, 30, 40 }; 172 ![]() ...} 174 return (this. intArray ); 176 175 } ![]() ...} 178 this. intArray = intArray; 180 179 } 181 private int intIndexed [ ] = { 0, 10, 20, 30, 40 }; 182 ![]() ...} 184 return (intIndexed [index ] ); 186 185 } ![]() ...} 188 intIndexed [index ] = value; 190 189 } 191 192 private int intMultibox [ ] = new int [ 0 ]; 193 ![]() ...} 195 return (this. intMultibox ); 197 196 } ![]() ...} 199 this. intMultibox = intMultibox; 201 200 } 202 /** 203 * An integer property. 204 */ 205 private int intProperty = 123; 206 ![]() ...} 208 return (this. intProperty ); 210 209 } ![]() |
这篇关于Struts1.2.4学习心得!(四)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!