struts 2 中的 EL 不工作
EL in struts 2 not working
我有一个提交给 struts2 操作的搜索表单(name = studentForm),该操作从 db 和 returns 获取数据到 JSP 表单(name = studentListForm ).
当我使用 s:property 时,我能够从操作表单中获得 属性,而使用 EL 时是空的。
动作
private int pageNumber;
/** some code here **/
setPageNumber(1);
public int getPageNumber()
{
return pageNumber;
}
public void setPageNumber(int pageNumber)
{
this.pageNumber = pageNumber;
}
JSP
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<s:form id="studentListForm" name="studentListForm" action="student.do" method="post" class="pure-form pure-form-aligned">
<table width="50%">
<tr>
<td align="center" colspan="2">
<!-- This works -->
<s:property value="pageNumber"/>
<!-- This doesn't -->
<c:out value="${studentListForm.pageNumber}"></c:out>
</td>
</tr>
</table>
<div id="hiddenFields">
<s:hidden key="pageNumber"></s:hidden>
</div>
</s:form>
</html>
您需要更改 EL 才能在 valueStack
中找到您的操作变量。
<c:out value="${pageNumber}"/>
请注意,由于 Struts 请求包装器,EL 表达式应该可以访问 valueStack
变量。参见 How we use JSTL with the framework。
我有一个提交给 struts2 操作的搜索表单(name = studentForm),该操作从 db 和 returns 获取数据到 JSP 表单(name = studentListForm ).
当我使用 s:property 时,我能够从操作表单中获得 属性,而使用 EL 时是空的。
动作
private int pageNumber;
/** some code here **/
setPageNumber(1);
public int getPageNumber()
{
return pageNumber;
}
public void setPageNumber(int pageNumber)
{
this.pageNumber = pageNumber;
}
JSP
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<s:form id="studentListForm" name="studentListForm" action="student.do" method="post" class="pure-form pure-form-aligned">
<table width="50%">
<tr>
<td align="center" colspan="2">
<!-- This works -->
<s:property value="pageNumber"/>
<!-- This doesn't -->
<c:out value="${studentListForm.pageNumber}"></c:out>
</td>
</tr>
</table>
<div id="hiddenFields">
<s:hidden key="pageNumber"></s:hidden>
</div>
</s:form>
</html>
您需要更改 EL 才能在 valueStack
中找到您的操作变量。
<c:out value="${pageNumber}"/>
请注意,由于 Struts 请求包装器,EL 表达式应该可以访问 valueStack
变量。参见 How we use JSTL with the framework。