序:
页面和后台之间的数据交互很多时候是依赖表单来完成的,通常使用struts标签相对而言方便点,但效率上很明显比用纯粹的html表单元素要差很多。
虽然比较基础,但是还是在这里对两者结合后台的使用作一个记录。
正文:
Action源码:
public class FormAction {
private String text;
private String radio;
private String ck;
private String select;
private String multiple;
private String textarea;
public String savestrutsform() {
log(getText());
log(getRadio());
log(getCk());
log(getSelect());
log(getMultiple());
log(getTextarea());
return "none";
}
public String showstrutsform() {
return "success";
}
public String savehtmlform() {
log(getText());
log(getRadio());
log(getCk());
log(getSelect());
log(getMultiple());
log(getTextarea());
return "none";
}
public String showhtmlform() {
return "success";
}
public void log(String str) {
System.out.println(str);
}
//get,set省略
}
xml配置:
<struts>
<package name="form" extends="struts-default">
<action name="savehtmlform" class="com.company.strutstudy.web.action.FormAction"
method="savehtmlform">
</action>
<action name="showhtmlform" class="com.company.strutstudy.web.action.FormAction"
method="showhtmlform">
<result name="success">/core/form_html.jsp</result>
</action>
<action name="savestrutsform" class="com.company.strutstudy.web.action.FormAction"
method="savestrutsform">
</action>
<action name="showstrutsform" class="com.company.strutstudy.web.action.FormAction"
method="showstrutsform">
<result name="success">/core/form_struts.jsp</result>
</action>
</package>
</struts>
HTML表单元素使用
html的jsp页面(form_html.jsp):
<form action="savehtmlform.action" method="post">
<table border="1">
<tr>
<td colspan="2">
Action对html表单元素进行获取
</td>
</tr>
<tr>
<td>
复选框checkbox
</td>
<td>
<input type="checkbox" name="ck" value="1" />
<input type="checkbox" name="ck" value="2" />
<input type="checkbox" name="ck" value="3" />
<input type="checkbox" name="ck" value="4" />
</td>
</tr>
<tr>
<td>
文本框text
</td>
<td>
<input type="text" name="text" />
</td>
</tr>
<tr>
<td>
单选radio
</td>
<td>
<input type="radio" name="radio" value="1" />
<input type="radio" name="radio" value="2" />
<input type="radio" name="radio" value="3" />
<input type="radio" name="radio" value="4" />
</td>
</tr>
<tr>
<td>
单选下拉select
</td>
<td>
<select name="select">
<option value="1">
one
</option>
<option value="2" selected="selected">
two
</option>
<option value="3">
three
</option>
<option value="4">
four
</option>
</select>
</td>
</tr>
<tr>
<td>
多选下拉select
</td>
<td>
<select name="multiple" multiple="multiple">
<option value="1">
one
</option>
<option value="2" selected="selected">
two
</option>
<option value="3">
three
</option>
<option value="4">
four
</option>
</select>
</td>
</tr>
<tr>
<td>
文本域(textarea)
</td>
<td>
<textarea rows="2" cols="3" name="textarea">
</textarea>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="保存表单">
</td>
</tr>
</table>
</form>
页面展示:
Struts2表单标签使用
struts2标签的jsp页面(form_struts.jsp):<s:form action="savestrutsform" method="post">
<s:label value="Action对struts2表单元素进行获取" ></s:label>
<table border="1">
<s:checkboxlist label="复选框checkbox"
list="{1,2,3,4}"
value="1,2" name="ck" />
<s:textfield label="文本框text" name="text" value="" />
<s:radio list="{1,2,3,4}" name="radio" label="单选radio(list)"></s:radio>
<s:radio list="#{'1':'one','2':'two','3':'three','4':'four'}"
name="radio" label="单选radio(map)"></s:radio>
<!-- value中设置默认选中 -->
<s:select label="单选下拉select" list="{1,2,3,4}" value="1"
name="select" />
<s:select label="多选下拉select" list="#{'1':'one','2':'two'}"
value="1" name="multiple" multiple="true" />
<s:textarea label="文本域textarea" name="textarea" value="" cols="2"
rows="3"></s:textarea>
<s:submit value="保存表单"></s:submit>
</table>
</s:form>
结果展示:
总结:
两者的使用区别通过查看上面的实例,还是比较大的。