使用 spring eval 标记并在 jsp 中调用 java 方法而不使用 scriptlet
using spring eval tag and call the java method in jsp without scriptlet
:-)
我有一个问题。
当 myCode.id 和 checkedLists 代码值相同时,我想检查复选框的状态。
<c:forEach var="myCode" items="${myCodeList }" varStatus="status">
<tr>
<th>
<input type="checkbox" id="myCode${status.index}" name="myCodes" />
</th>
<td>
<textarea id="myContent${status.index}" name="myContents"></textarea>
</td>
</th>
</tr>
</c:forEach>
我从我的控制器中扔掉 myCodeList 和 checkedList。
mycodeList 是一些代码列表的 VO 列表。
checkedList 是我从注册表视图中检查值的列表。
<c:forEach var="myCode" items="${myCodeList }" varStatus="status">
<c:set var="myCodeFlag" value="false"
<tr>
<th>
<input type="checkbox" id="myCode${status.index}" name="myCodes"
<c:forEach var="checkedCode" items="${checkedList}">
<c:if test="${checkedCode.codId eq myCode.codId}">
checked="checked"
</c:if>
</c:forEach>
/>
</th>
<td>
<textarea id="myContent${status.index}" name="myContents"
<c:if test="${myCodeFlag eq flase}">disabeld="disabled"</c:if>>
<c:forEach var="checkedCode" items="${checkedList}">
<c:if test="${checkedCode.codId eq myCode.codId}">
${checkedCode.content}
</c:if>
</c:forEach>
</textarea>
</td>
</th>
</tr>
</c:forEach>
它就像我想要的那样工作。
但是老板告诉我改代码更简单。
使用spring eval标签并调用java方法,
这意味着使用 Java 列表方法包含在 JSP.
所以我在 JSP 页面中这样尝试。
${checkedList.contains('${myCode.codId }') }
但是没用。
我该怎么做才能解决这个问题?
感谢您的帮助。
祝你有愉快的一天:-)
我换个方式解决
在控制器中,
将对象列表更改为对象映射。
也就是说,我可以这样写代码
之前.
<c:forEach var="myCode" items="${myCodeList }" varStatus="status">
<c:set var="myCodeFlag" value="false"
<tr>
<th>
<input type="checkbox" id="myCode${status.index}" name="myCodes"
<c:forEach var="checkedCode" items="${checkedList}">
<c:if test="${checkedCode.codId eq myCode.codId}">
checked="checked"
</c:if>
</c:forEach>
/>
</th>
<td>
<textarea id="myContent${status.index}" name="myContents"
<c:if test="${myCodeFlag eq flase}">disabeld="disabled"</c:if>>
<c:forEach var="checkedCode" items="${checkedList}">
<c:if test="${checkedCode.codId eq myCode.codId}">
${checkedCode.content}
</c:if>
</c:forEach>
</textarea>
</td>
</th>
</tr>
</c:forEach>
之后.
<textarea id="myContent${status.index}" name="myContents"
<c:if test="${checkedCodeMap[checkCode.codValue].category.codId ne myCode.codId}">disabeld="disabled"</c:if>>
<c:if test="${checkedCodeMap[checkCode.codValue].category.codId ne myCode.codId}">
${checkedCodeMap[checkCode.codValue].content}
</c:if>
</textarea>
读起来比以前好多了
:-)
我有一个问题。 当 myCode.id 和 checkedLists 代码值相同时,我想检查复选框的状态。
<c:forEach var="myCode" items="${myCodeList }" varStatus="status">
<tr>
<th>
<input type="checkbox" id="myCode${status.index}" name="myCodes" />
</th>
<td>
<textarea id="myContent${status.index}" name="myContents"></textarea>
</td>
</th>
</tr>
</c:forEach>
我从我的控制器中扔掉 myCodeList 和 checkedList。 mycodeList 是一些代码列表的 VO 列表。 checkedList 是我从注册表视图中检查值的列表。
<c:forEach var="myCode" items="${myCodeList }" varStatus="status">
<c:set var="myCodeFlag" value="false"
<tr>
<th>
<input type="checkbox" id="myCode${status.index}" name="myCodes"
<c:forEach var="checkedCode" items="${checkedList}">
<c:if test="${checkedCode.codId eq myCode.codId}">
checked="checked"
</c:if>
</c:forEach>
/>
</th>
<td>
<textarea id="myContent${status.index}" name="myContents"
<c:if test="${myCodeFlag eq flase}">disabeld="disabled"</c:if>>
<c:forEach var="checkedCode" items="${checkedList}">
<c:if test="${checkedCode.codId eq myCode.codId}">
${checkedCode.content}
</c:if>
</c:forEach>
</textarea>
</td>
</th>
</tr>
</c:forEach>
它就像我想要的那样工作。
但是老板告诉我改代码更简单。 使用spring eval标签并调用java方法, 这意味着使用 Java 列表方法包含在 JSP.
所以我在 JSP 页面中这样尝试。
${checkedList.contains('${myCode.codId }') }
但是没用。 我该怎么做才能解决这个问题?
感谢您的帮助。
祝你有愉快的一天:-)
我换个方式解决
在控制器中, 将对象列表更改为对象映射。
也就是说,我可以这样写代码
之前.
<c:forEach var="myCode" items="${myCodeList }" varStatus="status">
<c:set var="myCodeFlag" value="false"
<tr>
<th>
<input type="checkbox" id="myCode${status.index}" name="myCodes"
<c:forEach var="checkedCode" items="${checkedList}">
<c:if test="${checkedCode.codId eq myCode.codId}">
checked="checked"
</c:if>
</c:forEach>
/>
</th>
<td>
<textarea id="myContent${status.index}" name="myContents"
<c:if test="${myCodeFlag eq flase}">disabeld="disabled"</c:if>>
<c:forEach var="checkedCode" items="${checkedList}">
<c:if test="${checkedCode.codId eq myCode.codId}">
${checkedCode.content}
</c:if>
</c:forEach>
</textarea>
</td>
</th>
</tr>
</c:forEach>
之后.
<textarea id="myContent${status.index}" name="myContents"
<c:if test="${checkedCodeMap[checkCode.codValue].category.codId ne myCode.codId}">disabeld="disabled"</c:if>>
<c:if test="${checkedCodeMap[checkCode.codValue].category.codId ne myCode.codId}">
${checkedCodeMap[checkCode.codValue].content}
</c:if>
</textarea>
读起来比以前好多了