在struts2,可以使用<s:radio>标签来创建一个html单选按钮。有很多方法来填充数据到单选按钮,可以通过list, ognl 或 object。请查看下面的例子就知道了。
举个例子来说明如何使用列表,ognl和对象数据填充到struts2中,使用<s:radio>标签创建一个单选按钮。
action类来创建性别和语言值单选按钮列表。
radiobuttonaction.java
package com.h3.common.action; import java.util.arraylist; import java.util.list; import com.h3.common.model.language; import com.opensymphony.xwork2.actionsupport; public class radiobuttonaction extends actionsupport{ private list<string> genders; private list<language> languages ; private string yourgender; private string youranswer; private string yourlanguage; private static final string male = "male"; private static final string female = "female"; private static final string unknown = "unknown"; public radiobuttonaction(){ genders = new arraylist<string>(); genders.add(male); genders.add(female); genders.add(unknown); languages = new arraylist<language>(); languages.add( new language("en", "english") ); languages.add( new language("fr", "france") ); languages.add( new language("cn_zh", "chinese") ); languages.add( new language("de", "german") ); } //return default gender value public string getdefaultgendervalue(){ return unknown; } //return default language value public string getdefaultlanguagevalue(){ return "cn_zh"; } public string execute() { return success; } public string display() { return none; } //getter ad setter methods }
language.java
package com.h3.common.model; public class language{ private string languagecode; private string languagedisplay; public string getlanguagecode() { return languagecode; } public void setlanguagecode(string languagecode) { this.languagecode = languagecode; } public string getlanguagedisplay() { return languagedisplay; } public void setlanguagedisplay(string languagedisplay) { this.languagedisplay = languagedisplay; } public language(string languagecode, string languagedisplay) { this.languagecode = languagecode; this.languagedisplay = languagedisplay; } }
结果页面是使用struts2 “s:radio” 通过list, ognl 和 object来创建的三个单选按钮。
radiobutton.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> </head> <body> <h1>struts 2 radio button example</h1> <s:form action="resultaction" namespace="/"> <h2> <s:radio label="gender" name="yourgender" list="genders" value="defaultgendervalue" /> <s:radio label="gender" name="yourlanguage" list="languages" listkey="languagecode" listvalue="languagedisplay" value="defaultlanguagevalue" /> <s:radio label="answer" name="youranswer" list="#{'1':'yes','2':'no'}" value="2" /> </h2> <s:submit value="submit" name="submit" /> </s:form> </body> </html>a
result.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <body> <h1>struts 2 radio button example</h1> <h2> your selected gender : <s:property value="yourgender"/> </h2> <h2> your selected language : <s:property value="yourlanguage"/> </h2> <h2> your selected answer : <s:property value="youranswer"/> </h2> </body> </html>
<?xml version="1.0" encoding="utf-8" ?> <!doctype struts public "-//apache software foundation//dtd struts configuration 2.0//en" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devmode" value="true" /> <package name="com.h3.common.action" namespace="/" extends="struts-default"> <action name="radiobuttonaction" class="com.h3.common.action.radiobuttonaction" method="display"> <result name="none">/pages/radiobutton.jsp</result> </action> <action name="resultaction" class="com.h3.common.action.radiobuttonaction"> <result name="success">/pages/result.jsp</result> </action> </package> </struts>
http://localhost:8080/struts2radio/radiobuttonaction.action
http://localhost:8080/struts2radio/resultaction.action