论坛首页 Java企业应用论坛

提炼并修改的 jodd formTag

浏览 9989 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-11  
我是从 springside的文档中看的 jodd formTag 的
觉得很不错
立即就去下了一个来用
但是它的jar包含的内容比较多 很多我们用不上
我对他进行了提炼

同时增强了一些功能

1 现在不仅仅支持bean,还支持map了
2 jsp页面的表单区域名可以是标准的bean属性名了
(原先必须要大写字母开头)
大家说说 这里改为忽略大小写 会不会更好呢?

3 支持boolean类型的bean属性了 (以前不处理isXXX方法)
4 beans和scopes属性内的内容数量不一定非要匹配了
<jodd:form beans="bean1,bean2,bean3" scopes="session,request">
此时 bean2,bean3 都是从 request 中取
以前必须要写成
<jodd:form beans="bean1,bean2,bean3" scopes="session,request,request">
5 更主要的是 只要两个java文件就搞定




以下出自 SpringSide 手册

Jodd Form taglib 简介

Jodd Form的使用极其简单,因为太简单了,才会名不见经传而被我们选用,让我们罔顾各大Framework的Form Tag.

他只要把<form>的头尾以<jodd:form bean= "mybean">包住即可,就会自动绑定mybean的所有同名属性到普通html标记--input, selectbox, checkbox,radiobox.....在这些input框里不用再写任何代码

  可见,它的好处一是节约代码,二是保留了html版的form tag, 不需要用一套taglib来代替

  而且支持内嵌对象的绑定,如book.category.name。

比那些需要使用非纯html标记的<ww:input>,逐个绑定input框,select框的Form Tag,虽减了些许灵活性,但实在方便得太厉害。

如果属性来自于request,而不是某个java bean,写<jodd:form bean= "request">

jodd采用的是普通的bean反射,调用所有属性的toString()函数。

注意,jodd在html tag不含value="xxx"属性时才会自动绑定。如果某个input框你不希望jodd自动绑定,或者默认的toString()不能满足要求时,可以手工为该input框写上 value="xxxx",jodd看到你已经定义了属性值,就会自动绕开。

  • form.rar (4.9 KB)
  • 描述: 包名 类名大家自己重构一下吧
  • 下载次数: 385
   发表时间:2006-11-14  
这个标签好像还是04年的吧,为啥好的表单标签都是很老的呢,不知道大家是除了使用struts的form标签外还使用什么样的form标签呢,哪个最好用呢?
0 请登录后投票
   发表时间:2006-11-14  
这个标签好像还是04年的吧,为啥好的表单标签都是很老的呢,不知道大家是除了使用struts的form标签外还使用什么样的form标签呢,哪个最好用呢?
0 请登录后投票
   发表时间:2006-11-14  
呵呵 其实我也觉得这个小东西很有用
做"编辑"页面的时候超帅啊(尤其是没有使用el的话)

可不知道为什么 用的人这么少啊??


0 请登录后投票
   发表时间:2006-11-15  
checkbox 和 radiobox 绑定不了,
其实数据绑定还可以在客户端进行,高起来也很爽的(虽然不大喜欢用JS)

0 请登录后投票
   发表时间:2006-11-15  
checkbox 和 radiobox 绑定不了?
还真没试验
有机会再完善一下 呵呵

确实可以用js
事实上我也用的是js 尤其一些复杂的表单有关联的 或者是有很多其他特殊性的

但是对于大多数form来说 这个还是够用而且好用的
0 请登录后投票
   发表时间:2006-11-16  
可以绑定的,springside也做了个提炼,提炼为springside-joddform-2.0.jar

http://www.springside.org.cn/maven2/springside/springside/springside-joddform/2.0/springside-joddform-2.0.jar

还做了一些扩展,比如支持bean="request"
0 请登录后投票
   发表时间:2006-12-03  
这个东东有问题的:
   如果在spring项目中,在spring配置文件中加入了

代码一:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>


并且在类中使用

代码二:
jodd.servlet.MultipartRequest mrequest = new jodd.servlet.MultipartRequest(request, "UTF-8");

    Film film = new Film();
    BeanUtil.load(film, mrequest);


这个时候,在tomcat中运行会导致cpu 100%,并且程序一直不停.

我用的是原始的包

不知是怎么回事

通过调试发现,代码一和代码而不能并存.
0 请登录后投票
   发表时间:2006-12-04  
之前我不知道 springside里已经提炼了这个jodd form
知道后 我就没在动过我自己写的这个jodd了

事实上我也不建议大家在使用我提炼的这个了
用springside那个吧

楼上的反映的bug在springside-jodd里也有吗??
0 请登录后投票
   发表时间:2006-12-04  
springside的版本达不到只要两个java文件的水平:)
0 请登录后投票
论坛首页 Java企业应用版

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