2012-04-30 14 views
0

私たちはJava WebアプリケーションでStruts2を使用しています。メンバテーブル(列名、phoneno.etc。)は、マップされたテーブルMemberAddress(古いコード、メンバテーブルを変更して列を追加する機会はありません)を使用して、Addressテーブル(street、city、zipcode、country)アドレスを削除してください)。アクションクラスのデータを結果のjspページに取得する方法

ユーザーがメンバープロファイルを編集する場合は、設定をクリックすると、アクションクラスのexecute()メソッドが表示されます。ログインしたメンバーIDを持つアドレスオブジェクトが取得されています。以下のコードのようなものです。

protected String execute() throws Exception { 

    Member loginMember = memberDAO.getLoggedInMember(); 
    memberId = loginMember.getId(); 
    if (StringUtils.isNotBlank(memberId)) { 
     loginMember = memberDAO.getById(memberId); 
     Memberaddress memberAddress = 
         memberAddressDAO.getByMemberId(loginMember.getId()); 
     Address newAddress = null; 
     if (memberAddress != null && memberAddress.getId() != null) { 
      newAddress = addressDAO.getById(memberAddress.getId().getAddressid()); 
     } else { 
      newAddress = new Address(); 
     } 
    } 
    return SUCCESS; 
} 

結果が成功の場合は、入力フォームフィールドを含むmemberprofile.jspに結果ページが表示されます。ここでは、住所オブジェクトのインスタンス変数、すなわち、ストリート、シティ、郵便番号を含む既存のプロファイルの詳細を表示したいと考えています。メンバーオブジェクト& jspページのアドレスオブジェクトを取得する方法私は

<s:set var="address" value="newaddress"/> 

をしようと、このようなJSPの入力名フィールドにそのデータを入力しています。

<input id="addressStreet" type="text"  
value="<s:property value="#address.addressstreet" escape="false"/>"/> 

しかし、私はファイヤーバグで値= ""を取得しています。私は出力を取得している間、何か間違ったことをしています。

+1

'gs'名前空間は、strutsコアに使用されていますか?それともカスタムのtaglibですか?また、 'value'に置かれたプロパティからハッシュを削除してください。 – Thomas

+1

または

答えて

1

まあStruts2のは、あなたの人生が容易になりますと、それはValuStackにアクションから、あなたのオブジェクトを転送するの世話をすると、あなたがOGNLで遊んでする必要があるすべてはから値を取得しますバリュースタック。

newAddressオブジェクトにデータを配置し、その値をJSPに取得したいと思っています。 ゲッターとセッターでアクションクラスのプロパティを定義し、S2にオブジェクトを塗りつぶして、それを貴札に移す必要があります。

あなたは成功の結果は、あなたのアクションクラスS2から戻って送信されます場合は

<s:property name="addressStreet"/> 

ようOGNLを使ってValueStackにnewAddressオブジェクトのプロパティにアクセスする必要があるのはバリュースタックの上にnewAddressを配置し、我々はそれらにアクセスするためのOGNLを持っています。

+0

ソリューションのためのおかげで... :) –

+0

うれしいことがあなたを助けました! –

1

使用以下のコード

<s:property value="#request.address.addressstreet"/> 
関連する問題