有时一个表单有很多文本框,多选框 下拉框只类的 如果一共有30个表单元素 那我们岂不是要在bean里面定义30个属性 及其get set 方法?
有没什么方法无需定义属性及其get set方法呢 有!
//bean 里面的代代码
public static final String PARAM_PREFIX = "parameter.";
private Map parameter;
private Map createParameterMap(String paramPrefix){
Map result = new HashMap();
HttpServletRequest request = getRequest();
for(Enumeration en = request.getParameterNames();en.hasMoreElements();){
String key = en.nextElement().toString();
if(!key.startsWith(PARAM_PREFIX)) continue;
String value = request.getParameter(key);
String[] keys = StringUtils.split(".");
result.put(keys[1],value);
}
return result;
}
public Map getParameter() {
if(parameter != null)
return parameter;
return createParameterMap(PARAM_PREFIX);
}
public void setParameter(Map parameter) {
this.parameter = parameter;
}
//test.jsp
<html:form action="/query">
<table>
<tr>
<th>text1 :</th><td><html:text property="parameter.userName"></html:text></td>
<th>text2 :</th><td><html:text property="parameter.password"></html:text></td>
</tr>
<tr><td><html:submit>提交</html:submit></td></tr>
</table>
</html:form>
有没什么方法无需定义属性及其get set方法呢 有!
//bean 里面的代代码
public static final String PARAM_PREFIX = "parameter.";
private Map parameter;
private Map createParameterMap(String paramPrefix){
Map result = new HashMap();
HttpServletRequest request = getRequest();
for(Enumeration en = request.getParameterNames();en.hasMoreElements();){
String key = en.nextElement().toString();
if(!key.startsWith(PARAM_PREFIX)) continue;
String value = request.getParameter(key);
String[] keys = StringUtils.split(".");
result.put(keys[1],value);
}
return result;
}
public Map getParameter() {
if(parameter != null)
return parameter;
return createParameterMap(PARAM_PREFIX);
}
public void setParameter(Map parameter) {
this.parameter = parameter;
}
//test.jsp
<html:form action="/query">
<table>
<tr>
<th>text1 :</th><td><html:text property="parameter.userName"></html:text></td>
<th>text2 :</th><td><html:text property="parameter.password"></html:text></td>
</tr>
<tr><td><html:submit>提交</html:submit></td></tr>
</table>
</html:form>