2017-10-03 21 views
1

私はStruts2を使用していますが、<s:select>タグを使用してドロップダウンを設定しようとしていますが、何らかの理由でドロップダウンに何も表示されません。バックエンドでは、リストwsAuditConfigに値が入力されていますが、ドロップダウンには表示されません。Struts2ドロップダウンメニューに値を設定するには?

アクション

private List<String> wsAuditConfig; 

public void prepare() throws Exception { 
    AppConfigClient appConfigClient = (AppConfigClient) AppContext.getBean(Constants.SPRING_BEAN_CMS_APP_CONFIG_CLIENT); 
    String appCode = (String) System.getProperty(Constants.SPRING_BEAN_EIS_APP_CODE); 

    List<AppConfig> list = new ArrayList<>(); 
    wsAuditConfig = new ArrayList<>(); 

    GetAppConfigServiceRequest request = appConfigClient.getGetAppConfigServiceRequest(); 
    request.setParameters(appConfigClient.getAppConfigRequestParameters(appCode, null)); 
    request.setAccepts(ContentType.JSON); 

    GetAppConfigServiceResponse response = appConfigClient.get(request); 
    if(response != null && response.getEntity() != null) { 
     list = response.getEntity().getConfig(); 
     for(AppConfig appConfig : list) { 
      if(appConfig.getConfigCode().equals(Constants.APP_WS_AUDIT_CONFIG)) { 
       wsAuditConfig.add(appConfig.getKeyName1()); 
      } 
     } 
    } 
    this.records = new ArrayList<>(); 
} 

JSP

<s:form action="viewWSAuditXml" namespace="/eismain/cmswsaudit/view" name="wsAudit"> 
    <s:select name="wsName" headerValue="" headerKey="" list="wsAuditConfig" listKey="wsName" listValue="wsName" key="ws.audit.view.select" onchange="wsAudit.submit();" cssStyle="min-width: 220px;"/> 
</s:form> 

答えて

0

ドロップダウンアクションクラスはPreparableを実装する必要があり、アクションの設定にprepareインターセプタがあるはずれるprepare()方法で移入されるべきです。それは文字列のリストは、リストの要素がキーまたは値の特性を持っていないですので

ゲッターは

private List<String> wsAuditConfig; 
public List<String> getWsAuditConfig() { return wsAuditConfig; } 

必要です。したがって、listKeylistValueなしで使用できます。

<s:form action="viewWSAuditXml" namespace="/eismain/cmswsaudit/view" name="wsAudit"> 
    <s:select name="wsName" headerValue="" headerKey="" list="wsAuditConfig" key="ws.audit.view.select" onchange="wsAudit.submit();" cssStyle="min-width: 220px;"/> 
</s:form> 

ドロップダウン内のオブジェクトを一覧表示したい場合は、入力されたリストとthis答えにどのように類似したキーと値を使用する必要があります。

+0

追加のプロパティが削除され、作業が開始されました。ありがとうローマC – David

0

wsNameは何ですか?あなたは以下のように文字列の変更の選択リストを持っているので、それは仕事をshold。

<s:select name="wsName" headerValue="" headerKey="" list="wsAuditConfig" onchange="wsAudit.submit();" cssStyle="min-width: 220px;"/> 
関連する問題