2

是)我有的:

我有一个通用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="...">将它找到的与该路径相对应的内容放入输入中这一事实有点感兴趣(其他表单元素也是如此),但使用标签它的工作方式不同。

所以,我想要的基本上很简单,但我还没有找到方法。如果有人能提供一些启示,那就太好了。提前致谢 !

4

3 回答 3

3

您可以查看弹簧绑定标签。我以前没有尝试过使用它,但这可能对你有用,代替输入标签

<spring:bind path="fieldDef.fieldName">
 ${status.value}
</spring:bind>

参考:http ://static.springsource.org/spring/docs/1.1.5/taglib/tag/BindTag.html

于 2012-06-12T15:18:36.623 回答
2

代替

<form:input path="${fieldDef.fieldName}"/>

采用

<c:out value="${fieldDef.fieldName}"/>

它将显示那里的任何值,而不是创建输入字段。希望这对您有所帮助。干杯。

于 2012-06-12T12:55:24.583 回答
2

使用弹簧表单选项卡,一种选择是使用

<form:input disabled="true" path="${fieldDef.fieldName}"/>

为了进一步使它看起来不像一个输入,你可以使用 CSS 来设置你喜欢的样式。

您可以使用的一些 CSS 样式:

背景颜色:#EEEEEE;边框:0px 实心;

更新:您可以查看弹簧绑定标签。我以前没有尝试过使用它,但这可能对你有用,代替输入标签

<spring:bind path="fieldDef.fieldName">
     ${status.value}
</spring:bind>
于 2012-06-12T13:06:07.690 回答