2011-05-12 48 views
0

我有以下情形:问题有关Struts2的返回类型

struts.xml的

<action name="user_initNews" method="initNews" class="it.sba.bcc.sbarima.user.web.action.UserAction"> 
     <result type="dispatcher"> 
      <param name="location">pages/elementicomuni/elencoNews.jsp</param> 
     </result> 
    </action> 

用户操作

public class UserAction extends BaseAction 
{ 

    private NewsService newsService = null; 

    private User utente; 
    private List<News> news; 

    public String initNews() 
    { 
      return SUCCESS; 
    } 

    public void elencoNews() 
    { 
     try 
     { 
      newsService = UserServiceFactory.getNewsService(); 
      this.news = newsService.getNews(getAbiUserProfile(), getMatricolaUserProfile()); 
     } 
     catch (ServiceException e) 
     { 
      e.printStackTrace(); 
     } 
    } 

    public List<News> getNews() 
    { 
     return news; 
    } 
} 

elencoNews.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<?xml version="1.0" encoding="utf-8"?> 

<%@ taglib uri="/struts-tags" prefix="s" %> 
<html> 
    <body> 
     <s:action name="user_elencoNews!elencoNews"></s:action> 
     <s:iterator value="news" var="n"> 
      <label><s:property value="descrizione"/></label> 
     </s:iterator> 
    </body> 
</html> 

Whene的elencoNews .jsp是撕裂ered,我想从JSP页面调用返回一组POJO来迭代的动作。

的elencoNews.action正确调用,但我不知道如何对待在elencoNews.jap

数据

我怎样才能做到这一点?

+0

您确定您了解基本的Struts2工作流程。你确定要为单个请求调用2个动作?听起来对我错了。 – leonbloy 2011-05-12 15:28:47

+0

我想弄清楚,如何创建一个动态的jsp页面作为结果。直到现在:我总是看到简单的jsp页面,只返回简单的文本。 – AngeloBad 2011-05-12 15:45:10

回答

0

恐怕你误解了整个Struts2的典型工作流程。通常情况下,您不需要从JSP中调用另一个操作,即在您的操作处理完您的请求后JSP呈现的典型工作流中,它只是显示数据(通常来自您的Action实例,该值位于值栈中)。 如读here

在你的榜样,你应该在你的JPS的代码:

<s:iterator value="news" var="n"> 
    <s:property value="descrizione"/> 
</s:iterator> 

如果您有这方面的概念清晰(和已经编写最基本的,典型的struts2例),无视这更明确地说明你要完成什么 - 为什么你有两个操作涉及单个请求和jsp。