2016-09-06 1 views
1

Ich habe ein Suchformular (Name = StudentForm), die Struts2 Aktion eingereicht wird, die Daten von DB abruft und zu einer JSP mit einem Formular (Name = StudentListForm) zurückgibt.EL in Struts 2 funktioniert nicht

Wenn ich s: -Eigenschaft verwende, kann ich eine Eigenschaft aus dem Aktionsformular abrufen, während EL leer ist.

Aktion

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> 

Antwort

1

Sie müssen EL ändern, um Ihre Aktion Variable in der valueStack zu finden.

<c:out value="${pageNumber}"/> 

Hinweis, dass EL Ausdrücke Zugriff auf valueStack Variablen aufgrund Struts Anfrage Wrapper haben sollte. Siehe How we use JSTL with the framework.