有个填写客户信息的form表单,借助structs2.1的标签传递字段给CusAction.
在这个表单中,有些是[color=blue]必填字段[/color],希望设置标签中的[color=red]lable属性的颜色[/color]来提示,字段后面有“[color=indigo]提示文字[/color]”,
不知道该如何实现。
[b]问题补充:[/b]
对于一楼的建议做下解释:
若是采用了html代码,Action中要定义一大堆对应form表单的字段,再加上GET/SET方法,会有一大堆冗余代码,Action看起来太累。
对于二楼的建议,我查了下生成的html代码,如下:
在IE中生成html代码:
[code="java"]
客户电话:
id="cusadd_tel"/>
[/code]
如果在css中定义了lable,
表单中所用的标签都统一用此样式了。
问题是我[color=blue]只想让必填字段用此样式[/color]?
[b]问题补充:[/b]
一楼说的的确是一种实现方式,不过小弟不才,用css定义样式表有些望而却步。 看来又涉及到另一个问题了:Action取得form表单字段的方式。查了些资料,说有3中方式:
-
属性取值
Action须定义与form同名的字段属性,并提供get/set方法即可以取得form表单中的值。 不足之处是Action中定义的属性及相应的get/set方法有一大堆,看起来比较臃肿。[code="java"] [/code]
2.领域取值
Action定义与form关联的对象,通过“对象名.属性名”取值,一楼说的应该是第二种吧?[code="java"] [/code]
或者
[code="java"] [/code]3.模型驱动
structs2独特的模型驱动方式,Action实现ModelDriven接口,并提供getModel() 方法,这样做的好处就是form中可以直接写“属性名”,Action就可取得form表单中对应的字段值。
[code="java"]public class CusAction extends ActionSupport implements ModelDriven{
privateCus cus=new Cus();
……
public Cus getModel() {
return cus;
}
}[/code]
cusAdd.jsp
[code="java"] <S:textfield name="tel" label="用户电话">[/code]
对于第2种方法和第3种方法,有何区别,用谁更好?
----[color=red]额外加5分求教[/color]
回到第一个问题:
目的是让[color=blue][size=x-small]"用户电话"[/size][/color]显示为蓝色(必填字段),其他[size=small]非必填字段[/size]标签内容显示为统一样式。
试过后发现 标签中 cssStyle可用,但只会改变输入文字的样式。
难道真的不可以在structs标签中定义lable颜色了吗?