3

我正在尝试使用 Spring MVC 制作表单以编辑某些对象。该对象的某些字段是在创建时设置的,然后无法编辑,因此它们必须像纯文本一样显示在编辑表单上,而不是像输入一样。当我在 spring 表单标签库中没有找到像 spring:output 这样的东西时,我感到非常惊讶。怎么办?请帮助:)这是我的表格代码:

    <?xml version="1.0" encoding="UTF-8" ?>
    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
    <%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
    <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
    <%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>

    <h1><spring:message code="Information" /></h1>

    <form:form commandName="shop" method="POST">
        <table>
            <tr>
                <td><spring:message code="ShopCompanyName"/>
                <td colspan="2">**HERE MUST BE A STATIC TEXT 
FILLED WITH THE VALUE OF SOME FIELD FROM OBJECT**</td>
            </tr>
            <tr>
                <td colspan="3"><h2><spring:message code="Contacts"/></h2></td>
            </tr>
            <tr>
                <td><spring:message code="ShopUserLN"/></td>
                <td><form:input path="user.lastName"/></td>
                <td><form:errors path="user.lastName" cssClass="error"/></td>
            </tr>
            <tr>
                <td><spring:message code="ShopUserFN"/></td>
                <td><form:input path="user.firstName"/></td>
                <td><form:errors path="user.firstName" cssClass="error"/></td>
            </tr>
            <tr>
                <td><spring:message code="ShopUserMN"/></td>
                <td><form:input path="user.middleName"/></td>
            </tr>
            <tr>
                <td><spring:message code="ShopUserPhone"/></td>
                <td><form:input path="user.phone"/></td>
                <td><form:errors path="user.phone" cssClass="error"/></td>
            </tr>
        </table>
        <input type="submit" value="Save">
    </form:form>
4

3 回答 3

2
<c:out value="${someObject.someProperty}"/>

甚至

${someObject.someProperty} 

如果不需要 XML 转义。

于 2012-10-28T12:19:50.487 回答
1

如果您已将输出分离到标记文件,则可以使用 spring 数据绑定和状态对象,以避免表单名称或对象“shop”的移交:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="my" tagdir="/path/to/tag"%>

<form:form commandName="shop" method="POST">
    <my:formFieldFixed path="name"/>
</form>

并在 /path/to/tag/formFieldFixed.tag 文件中

<%@ attribute name="path" required="true" type="java.lang.String" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

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

使用这样的绑定,您还可以将表单错误与表单容器分开,等等。在此处查看示例: https ://docs.spring.io/spring/docs/1.1.5/taglib/tag/BindTag.html

于 2020-05-18T15:45:54.737 回答
0

如果您想在 Spring 中的一行中创建多个字段,那么您可以使用以下代码:

<tr>
    <td><form:label path="first_name">First Name:</form:label></td>
    <td><form:input path="first_name" /></td>

    <td><form:label path="last_name">Last Name:</form:label></td>
    <td><form:input path="last_name" /></td>
</tr>

这是在单行中创建表单字段的最简单方法...

于 2014-06-06T14:02:07.810 回答