这些标签学习起来并不轻松,有好多种变化,要掌握全面,一定要有耐心!
下面把用到jsp页面的代码和formbean代码和properties文件代码贴到下面!慢慢看看,别着急!
Jsp页面源代码:
<%@ page language="java" pageEncoding="UTF-8" import="com.html.struts.form.*,java.util.*"%>
<!--引入form包中的javabean和接下来可能要建立集合用到的java.util.*中的所有类--><%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %><%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %><%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %><%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>
<!--导入Struts的常用标签Struts1.2以后可以不在web.xml中声明,只要把uri路径写对就ok!--><html:html> <head> <title>html标签研究</title> </head> <body> <html:form action="/login.do"> <table border="1" width="100%"> <tr> <th align="left" width="20%"> <html:checkbox> </th> <th align="left" width="80%"> Struts code for example </th> </tr> <tr> <td align="left" width="20%"> Checkbox 1: <html:checkbox property="checkbox1" value="true"></html:checkbox> </td> <td align="left" width="80%"> <html:checkbox property="checkbox1"> -Normal checkbox </td> </tr> <tr> <td align="left" width="20%"> Checkbox 2: <html:checkbox property="checkbox2"></html:checkbox>
<!--checkbox用来最单选有点绕,不建议这么用--> </td> <td align="left" width="80%"> <html:checkbox property="checkbox2"> -Normal checkbox </td> </tr> </table> <table border="1" width="100%"> <tr> <th align="left" width="20%"> <html:multibox> </th> <th align="left" width="80%"> Struts code fro example </th> </tr> <tr> <td align="left" width="20%">Multibox1:
<html:multibox property="strArray" value="Value1"></html:multibox>
</td> <td align="left" width="80%">Multibox1:<html:multibox property="strArray" value="Value1"/> </tr> <tr> <td align="left" width="20%">Multibox1:
<html:multibox property="strArray" value="Value2"></html:multibox>
<!--multibox为复选框注意上面两个的property后面都是strArray对应着frombean中的strArray这个数组变量提交以后将都被放入此数组中-->
</td> <td align="left" width="80%">Multibox1:<html:multibox property="strArray" value="Value2"/> </tr> </table> <table> <tr> <th align="left" width="20%"> <html:Radiobox/> </th> <th align="left" width="80%"> Struts code for example </th> </tr> <tr> <td align="left" width="20%"> <html:radio property="radioVal" value="RadioValue1">Radio1</html:radio> </td> <td align="left" width="80%"> <html:radio property="radioVal" value="RadioValue1"/> </td> </tr> <tr> <td align="left" width="20%"> <html:radio property="radioVal" value="RadioValue1">Radio1</html:radio>
<!--这个radio按钮,单选互斥按钮,当然property后边的名字一样才可以互斥,formbean中为这样的互斥按钮建立一个string变量即可--> </td> <td align="left" width="80%"> <html:radio property="radioVal" value="RadioValue1"/> </td> </tr> </table> <table> <tr> <% Vector colorCollection = new Vector(); colorCollection.add( new org.apache.struts.util.LabelValueBean("Pink","htmlselect.pink")); colorCollection.add( new org.apache.struts.util.LabelValueBean("Pink","htmlselect.pink")); pageContext.setAttribute("colorCollection",colorCollection); %>
<!--这个在页面上建立的集合colorCollection 将对应下面的select的options标签中的collection属性,options将调能够调用pageContext范围内的集合变量而一次性输出集合中的值--> </tr> <th align="left" width="20%">Select a customer:</th> <th align="left" width="20%">Select some colors:</th> <th align="left" width="50%">You last submitted:</th> <tr> <td align="left" width="20%">
<html:select property="custId">
<html:optionsCollection property="customers" label="name" value="custId" /></html:select>
<!--第一行property指定对应的formbean中的属性;第二行输出用到了optionsCollection来输出一组option元素,select内可以包含多个optionscollection,optionsCollection元素应该有一个name元素来对应特定的javabean的名字,此例中没有指定特定的name属性,那么就将使用关联的formbean,在下面的formbean代码中为其property属性指定了可选集合customers[],并在formbean的构造函数中为customers[]集合初始化,这里要多注意这种用法!另外Customerbean这个bean中只是定义了Customerbean这个类的一半形式,并不是和这个property不要弄混。-->
</td> <td align="left" width="80%"> <html:select property="colors" size="6" multiple="true">
<!--select标签中的size控制多选列表的数量multiple为true为多选,默认为下拉列表。由于是多选列表property属性对应的formbean中的colors应为一个数组,这在下面formbean中的代码中将看到-->
<html:option value="htmlselect.orange">Orange</html:option> <html:option value="htmlselect.purple">Purple</html:option>
<!--以上是普通option项加入多选列表中value对应实际值!中间为显示值!-->
<html:option value="htmlselect.red" bundle="htmlselect.Colors" key="htmlselect.red"/>
<html:option value="htmlselect.blue" bundle="htmlselect.Colors" key="htmlselect.blue"/>
<!--以上为调用properties中的key属性对应值,在struts-config.xml定义为“<message-resources parameter="HtmlSelectColors" key="htmlselect.Colors">”message-resources元素配置的Resourse Bundle的资源文件为 HtmlSelectColors.properties。文件内容“htmlselect.red=Red htmlselect.blue=Blue”-->
<html:options collection="colorCollection" property="value" labelProperty="label" />
<!--options元素输出一组option元素,collection属性指定存放列表项的集合对象,这个集合应该存放在page范围内,在本文开头可以找到我们定义的集合collorCollection。-->
</html:select></td>
</tr> </table> <html:submit>确定</html:submit> <html:reset>重设</html:reset> </html:form> </body></html:html>
对应formbean文件代码:
(由各个属性名字即可判断出对应的jsp文件中的property,不再敖述!~^-^)
package com.html.struts.form;
import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;
/** * MyEclipse Struts * Creation date: 11-22-2006 * * XDoclet definition: * @struts.form */public class LoginForm extends ActionForm { /* * Generated Methods */
/** * Method validate * @param mapping * @param request * @return ActionErrors */
public LoginForm() {
customers = new CustomerBean[3];
for (int i=0; i<3 ; i++ ) { customers[i] = new CustomerBean(); customers[i].setCustId(i); }
customers[0].setName("Tom"); customers[1].setName("Linda"); customers[2].setName("Jane"); }
private boolean checkbox1;
public boolean getCheckbox1(){ return this.checkbox1; } public void setCheckbox1(boolean checkbox1){ this.checkbox1=checkbox1; } private boolean checkbox2;
public boolean getCheckbox2(){ return this.checkbox2; } public void setCheckbox2(boolean checkbox2){ this.checkbox2=checkbox2; } private String strArray[] = new String[0]; public String[] getStrArray(){return this.strArray;} public void setStrArray(String strArray[]){this.strArray = strArray;}
private String radioVal="";
public String getRadioVal() { return radioVal; } public void setRadioVal(String radioVal) { this.radioVal = radioVal; } private CustomerBean customers[]; public CustomerBean[] getCustomers() { return customers; } public void setCustomers(CustomerBean[] customers) { this.customers = customers; } private int custId;
public int getCustId() { return custId; } public void setCustId(int custId) { this.custId = custId; } private CustomerBean cust = new CustomerBean(); public CustomerBean getCust() { return cust; } public void setCust(CustomerBean cust) { this.cust = cust; } private String colors[]; public String[] getColors() { return colors; } public void setColors(String[] colors) { this.colors = colors; } public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub return null; }
/** * Method reset * @param mapping * @param request */ public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub this.setCheckbox1(false); this.setCheckbox2(false); }}
CustomerBean 代码如下:
package com.html.struts.form;
public class CustomerBean { private int custId; private String name; private String[] favColors=new String[0]; public CustomerBean() { } public int getCustId(){ return this.custId; } public String getName(){ return this.name; } public String[] getFavColors(){ return this.favColors; }
public void setCustId(int custId){ this.custId=custId; } public void setName(String name){ this.name=name; } public void setFavColors(String[] favColors){ this.favColors=favColors; } }
o了!~