论坛首页 入门技术论坛

关于解决页面N多表单元素的问题

浏览 2472 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-11-07  
有时一个表单有很多文本框,多选框 下拉框只类的 如果一共有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>
   发表时间:2007-11-07  
把数据放到map里会非常的不爽。。。。
0 请登录后投票
   发表时间:2007-11-07  
如果是struts+spring+ibatis
这样将会节省很多时间的
如果要直接获得一个map
Map map = getParameter();
如果要获得其中某个元素的值 String value = map.get(param).toString();
这样还不够方便吗 如果是使用ibatis 将更加方便 直接将map 传递给ibatis

呵呵 我也才用java不久 有什么更好的方法 大家一起探讨哈
0 请登录后投票
   发表时间:2007-11-08  
大力水手 写道
如果是struts+spring+ibatis
这样将会节省很多时间的
如果要直接获得一个map
Map map = getParameter();
如果要获得其中某个元素的值 String value = map.get(param).toString();
这样还不够方便吗 如果是使用ibatis 将更加方便 直接将map 传递给ibatis

呵呵 我也才用java不久 有什么更好的方法 大家一起探讨哈


当一个参数与另一个参数同名。。。
当一个参数与另一个参数名子很近
当一个参数被记成另一个参数
我3年前用过这种方式。。。开发速度比找错速度。。。非常的不合算。
0 请登录后投票
   发表时间:2007-11-08  
同一个页面中不应该有同名的参数
一个参数与另一个参数名子很近也没关系啊 只要不一样就行了
一次提交就会产生一个map 这样也不存在冲突啊
0 请登录后投票
   发表时间:2007-11-08  
大力水手 写道
同一个页面中不应该有同名的参数
一个参数与另一个参数名子很近也没关系啊 只要不一样就行了
一次提交就会产生一个map 这样也不存在冲突啊

理论上好的东西。。。用用试试。。。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics