1

コードで自分自身を繰り返さないために、modelAttribute名前をJava定数として使用しました

@Controller
@RequestMapping("/")
public class Controller {
    public static final String MODEL_ATTRIBUTE = "myModel";

    public String renderPage(Model model) {
        model.addAttribute(MODEL_ATTRIBUTE, ...);
        return "index";
    }
}

ここで、スクリプトレットを使用してこの定数を JSP にインポートします (スクリプトレットが悪いことは知っていますが、より良い解決策については知りません)。

<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

<%@page import="static com.example.Controller.*" %>

<form:form action="/" modelAttribute="<%= MODEL_ATTRIBUTE %>">

    <form:label path="attr1">Attribute:</form:label>
    <form:input path="attr1" />

    <c:forEach items="${???.attr2}" var="item">
        ...    
    </c:forEach>
    <input type="submit" />
</form:form>

modelAttributeforEach ループでオブジェクトを参照するにはどうすればよいですか? SpringフォームでDRYのより良い解決策はありますか?

4

1 に答える 1

0

モデル名を使用し、

<c:forEach items="${myModel.attributeNameFromYourModel}" var="item">
        ...    
</c:forEach>
于 2012-04-24T12:41:01.577 に答える