gpt4 book ai didi

java - Struts 问题 -- s :hidden

转载 作者:行者123 更新时间:2023-12-01 15:55:34 25 4
gpt4 key购买 nike

我的 JSP 中有以下代码。我正在使用 Struts 表单,在其中传递要迭代的列表,并且列表中的每个项目都有其自己单独的表单。列表中的所有字段都是字符串,除了 id 之外,它是一个 int。我试图在 s:hidden 标记中呈现 int,但 Eclipse 告诉我“属性(值)无效”。 Struts 文档说该值采用字符串,但我将Bulletins.id 包装在${...} 内,这应该将其转换为字符串。我已经进行了多次谷歌搜索来尝试解决这个问题,但我一无所获。有人见过这个吗?

    <%@ page import="java.io.*"%>
<%@ page import="java.util.List"%>
<%@ page language="java" import="model.Bulletin"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<!-- Some more code here that's not relevant to this problem -->

<c:forEach var="bulletins" items="${bulletins}">
<c:if test="${bulletins.approved == false}">
<s:form action="ApproveBulletin" method="post">
<table>
<tr>
<td colspan="2"><b>From:</b> <c:out value="${bulletins.name}" /></td>
</tr>
<tr>
<td colspan="2"><b>Subject:</b> <c:out value="${bulletins.subject}" /></td>
</tr>
<tr>
<td colspan="2"><b>Date:</b> <c:out value="${bulletins.date}" /> <br>
</td>
</tr>
<tr>
<td colspan="2"><c:out value="${bulletins.note}" />
<!-- Error here --> <s:hidden name="id" value="${bulletins.id}" /></td>
</tr>
<tr>
<td><s:submit type="button" value="approve" label="Approve"
action="ApproveBuletin" /></td>
<td><s:submit type="button" value="deny" label="Deny"
action="DenyBulletin" /></td>
</tr>
</table>
<br />
</s:form>
</c:if>
</c:forEach>

<!-- Some more code here that's not relevant to this problem -->

最佳答案

Struts2 标签更喜欢 OGNL,因此将 ${} 替换为 %{} 甚至更好,只需编写

<s:hidden name="id" value="bulletins.id" />

这是个人喜好,但我会只使用 S2 标签编写该页面:

<s:iterator value="bulletins">
<s:if test="approved == false">
<s:form action="ApproveBulletin" method="post">
<table>
<tr>
<td colspan="2">
<b>From:</b>
<s:property value="name" />
</td>
</tr>
<tr>
<td colspan="2"><b>Subject:</b> <s:property value="subject" /></td>
</tr>
<tr>
<td colspan="2"><b>Date:</b> <s:property value="date" /></td>
</tr>
<tr>
<td colspan="2">
<s:property value="note"/>
<s:hidden name="id" value="id" />
</td>
</tr>
<tr>
<td><s:submit type="button" value="approve" label="Approve" action="ApproveBuletin" /></td>
<td><s:submit type="button" value="deny" label="Deny" action="DenyBulletin" /></td>
</tr>
</table>
<br/>
</s:form>
</s:if>
</s:iterator>

差别很小。请注意,迭代器堆栈将当前正在迭代的对象推送到堆栈上,因此您不需要在迭代器元素内使用点符号(对于更深层嵌套的对象,您将...)。

关于java - Struts 问题 -- s :hidden,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5136169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com