我有以下动作类:
package com.pendulum.web;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.pendulum.dao.DocumentoDAO;
import com.pendulum.domain.Documento;
import com.pendulum.domain.DocumentoPK;
public class DocumentoAction extends ActionSupport implements ModelDriven<Documento>{
private static final long serialVersionUID = 8757127171831894323L;
private Documento documento = new Documento();
private List<Documento> documentList = new ArrayList<Documento>();
private DocumentoDAO documentoDAO = new DocumentoDAO();
private Documento currDocument = new Documento();
private DocumentoPK documentoPK = new DocumentoPK();
@Override
public Documento getModel() {
return documento;
}
public Documento getDocumento() {
return documento;
}
public void setDocumento(Documento documento) {
this.documento = documento;
}
public List<Documento> getDocumentList() {
return documentList;
}
public void setDocumentList(List<Documento> documentList) {
this.documentList = documentList;
}
public String listDocument()
{
HttpServletRequest request = (HttpServletRequest) ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
documentList = documentoDAO.listDocumentsByCreditId(request.getParameter("creditId"));
if (documentList.size()>0) {
currDocument = documentList.get(0);
documentoPK = currDocument.getDocumentoPK();
}
System.err.println(documentList.size());
System.err.println(currDocument.getDocumentoPK().getCreditoId());
System.err.println(currDocument.getOrigenId());
return SUCCESS;
}
public DocumentoDAO getDocumentoDAO() {
return documentoDAO;
}
public void setDocumentoDAO(DocumentoDAO documentoDAO) {
this.documentoDAO = documentoDAO;
}
public Documento getCurrDocument() {
return currDocument;
}
public void setCurrDocument(Documento currDocument) {
this.currDocument = currDocument;
}
public DocumentoPK getDocumentoPK() {
return documentoPK;
}
public void setDocumentoPK(DocumentoPK documentoPK) {
this.documentoPK = documentoPK;
}
}
我的问题是在我的视图(.jsp)中我可以从currDocument获取属性,但我无法获取DocumentoPK中的属性。
DocumentoPK是一个在自己的类上声明的hibernate复合键,并在每个Documento bean上实例化,但是...在我的jsp中我有:
<table class="userTable" cellpadding="5px">
<tr class="even">
<td><s:property value="currDocument.origenId"/></td>
<td><s:property value="documentoPK.creditId"/></td>
<td><s:property value="currDocument.documentoPK.creditId"/></td>
<td><s:property value="creditId"/></td>
</tr>
</table>
但只有第一个的值被渲染...并且不知道我是否遗漏了明显的东西。 任何帮助非常感谢! Jhurtado
答案 0 :(得分:2)
由于DocumentoPK
上的getter为getCreditoId()
,因此不应将OGNL属性命名为creditoId
:
<td><s:property value="documentoPK.creditId"/></td>
<td><s:property value="currDocument.documentoPK.creditId"/></td>