0

同じJSPページを使用してstruts2を使用してブラウザーに表示するために、ページの読み込み時にActionSupportJSPページ名からリクエスト属性を反復しようとしていますが、実行時に空の表示になります。EnergyConsumptionAnalysis誰が私がやっている何が間違っているのか教えてもらえますか?

JSP:

<s:action name = "FetchSite"></s:action>
  <s:iterator value="siteData">
        <s:property value = "name"/>
  </s:iterator>

アクション サポート:

public class EnergyAction extends ActionSupport implements  ServletRequestAware
{
    private HttpServletRequest request;
    @Override
    public String execute()
            throws Exception {
        //Get the site Data
        EnergyAnalysisBusinessHandler handler = new EnergyAnalysisBusinessHandler();

        //setting attribute as arraylist type
        request.setAttribute("siteData", handler.getSiteData());
        return SUCCESS;
   }

    public void setServletRequest(HttpServletRequest request){
        this.request = request;
    }

    public HttpServletRequest getServletRequest(){
    return request;
  }

struts.xml:

<action name = "FetchSite" class = "com.javaworld.email.EnergyAction">
               <result name = "success">jsp/EnergyConsumptionAnalysis.jsp
               </result>
 </action>
4

2 に答える 2

4

1値スタックからsiteDataを取得しようとしていますが、要求に入れています。このようにあなたは要求からそれを取ることができます:

<s:iterator value="#request.siteData">
        <s:property value = "name"/>
</s:iterator>

2いくつかのパラメーターを.jspに渡す最も簡単な方法は、アクションでゲッター/セッターを作成することです。パラメータをリクエストする必要はまったくありません。

アクション:

    public class EnergyAction extends ActionSupport
    {
        private Object siteData;

        @Override
        public String execute()
                throws Exception {
            //Get the site Data
            EnergyAnalysisBusinessHandler handler = new EnergyAnalysisBusinessHandler();
            siteData = handler.getSiteData();
            return SUCCESS;
       }

        public void setSiteData(Object siteData){
            this.siteData = siteData;
        }

        public Object getSiteData(){
            return siteData;
        }
    }

JSP:

<s:iterator value="siteData">
  <s:property value = "name"/>
</s:iterator>
于 2012-05-28T12:45:39.727 に答える
0

これの代わりに:

<s:iterator value="siteData">
        <s:property value = "name"/>
  </s:iterator>

これを使用できます:

<s:iterator value="%{#request.siteData}">
        <s:property value = "name"/>
  </s:iterator>
于 2012-05-28T12:36:38.157 に答える