我有什么:
我有一个通用 JSP页面,在我的应用程序中用于显示某些实体。我感兴趣的代码是这样的:
<form:form modelAttribute="object"/>
<core:forEach items="${sections}" var="section" varStatus="itemStat">
<core:forEach items="${section.fields}" var="fieldDef">
<form:input path="${fieldDef.fieldName}"/>
</core:forEach>
</core:forEach>
<form:form>
对于每个部分,以及该部分中的每个字段,我都有一个输入,其路径为 fieldName ,这是我想要从每个字段中显示的内容。
我想要的是什么:
我希望输入不是简单的文本,而是标签。
我尝试了什么:
我最确定我可以用<form:label>
以某种方式做到这一点,但我无法真正做到这一点。制作<form:label path="${fieldDef.fieldName}" />
只是告诉浏览器我需要哪个字段标签,但是没有从中获取实际值。
我也尝试了类似${object.fieldDef.fieldName}
的内容,但为了实现这一点,我必须首先分析${fieldDef.fieldName}
的值,它会给我列的名称,然后执行一个${object.column}
,但是列是变量我无法以任何方式使其工作。
替代:
另一种方法是将输入设置为禁用并删除CSS的边框,但这将是一种肮脏的方式,从我看到它对于IE不同的版本也是棘手的。我相信我可以直接处理它。
我对<form:input path="...">
在输入中输入与该路径相对应的内容(对于其他表单元素也是如此)感到有点兴趣,但是使用标签它的工作方式不同。
所以,我想要的基本上很简单,但我还没找到办法。如果有人能够发光,那就太好了。提前谢谢!
答案 0 :(得分:3)
您可以查看spring绑定标记。我以前没有尝试过使用它,但这可能对你有用,代替输入标签
<spring:bind path="fieldDef.fieldName">
${status.value}
</spring:bind>
参考:http://static.springsource.org/spring/docs/1.1.5/taglib/tag/BindTag.html
答案 1 :(得分:2)
而不是
<form:input path="${fieldDef.fieldName}"/>
使用
<c:out value="${fieldDef.fieldName}"/>
它会显示任何值而不是创建输入字段。希望这对你有所帮助。欢呼声。
答案 2 :(得分:2)
使用弹簧形式选项卡,一个选项是使用
&lt; form:input disabled =“true” path =“$ {fieldDef.fieldName}”/&gt;
为了进一步使它看起来不像输入,您可以使用CSS根据您的喜好设置样式。
您可以使用的一些CSS样式:
background-color:#EEEEEE; border:0px solid;
更新: 你可以查看spring绑定标签。我以前没有尝试过使用它,但这可能对你有用,代替输入标签
<spring:bind path="fieldDef.fieldName">
${status.value}
</spring:bind>