使用html表单标签而不是Struts 2 s:form标签是否有效?

时间:2013-04-08 16:24:13

标签: java forms jsp java-ee struts2

我想用

<form action="someClass">
<s:textarea name="name" label="Name"/>
<s:checkboxlist list="{'Male','Female'}" name="gender" label="Gender"/>
</form>

而不是

<s:form action="someClass">
<s:textarea name="name" label="Name"/>
<s:checkboxlist list="{'Male','Female'}" name="gender" label="Gender"/>
</s:form>

由于<s:form>标记的默认主题“xhtml"不适合我的CSS和主题”简单“,因此无法使用fielderror标记自行显示验证错误。 使用它有效吗? 到目前为止,我很喜欢这样使用。我将来会面临使用这样的错误吗?

2 个答案:

答案 0 :(得分:4)

当然,您可以使用纯HTML标记。

请记住,所有JSP自定义标记最终都是渲染HTML。 [1]

正如罗马所说,你会丢失诸如自动填充值,通过属性名称或密钥检索标签,显示错误消息和样式等等。

您最好的行动方案可能是创建自己的主题并使用自己的模板和CSS,或使用"css_xhtml"主题,并提供自己的样式。哪个更好取决于我们没有的大量信息,但CSS HTML版本相当灵活,除了必须将<br/>标记定义为内联,因为它当前在主题中使用它不应该。

[1]是的,它可以在发送HTML之前在服务器端执行其他操作,例如SQL自定义标记。但是,一般而言,自定义标记的目的是发出HTML。

答案 1 :(得分:1)

您可以使用<form>标记来处理表单,但它不是<s:form标记,您必须手动维护它的属性。 <s:form使用与框架完全通信的精美预设属性呈现<form>标记。省略它缺少框架提供的一些功能,导致不正确的用法和错误。