1

私の目的は、Struts2 Action で TestBean クラスのオブジェクトを取得し、その値を jsp ページ (ビュー レイヤー) に表示することです。

次のように、ModelDriven インターフェイスをアクション クラスに実装しています。

public class TestAction extends ActionSupport implements ModelDriven<TestBean>{

    private TestBean testBeanObject;

    @Override
    public TestBean getModel() {
        return testBeanObject;
    }

    @Override
    public String execute(){

        testBeanObject = getting object of TestBean Class from business layer (It is having all the value whatever I want)

        return ActionSupport.SUCCESS;
    }
}

私の TestBean クラスコード

@実在物

@Table(name="test_bean") 
public class TestBean implements Serializable { 
private static final long serialVersionUID = 1L; 

@Id 
@Column(name="test_bean_id") 
private int testBeanId; 

private String firstProperty; 

private String secondProperty; 


@OneToMany(mappedBy="testBeanPaper", fetch = FetchType.LAZY) 
private List<PapersText> papersTexts; 

public TestBean() { 
} 

public String getFirstProperty() { 
   return this.firstProperty; 
} 

public void setFirstProperty(String firstProperty) { 
   this.firstProperty = firstProperty; 
} 

public String getSecondProperty() { 
   return this.secondProperty; 
} 

public void setSecondProperty(String secondProperty) { 
   this.secondProperty = secondProperty; 
} 

public List<PapersText> getPapersTexts() { 
   return this.papersTexts; 
} 

public void setPapersTexts(List<PapersText> papersTexts) { 
   this.papersTexts = papersTexts; 
}  

}

私のjspページコードは

<s:textarea id="textarea1" class="longinput" name="firstProperty" value="%{firstProperty}"></s:textarea> 

<s:textarea id="textarea2" class="longinput" name="secondProperty" value="%{secondProperty}"></s:textarea> 

ビュー レイヤー (Jsp ページ) に、TestBean クラスのプロパティと同じ名前のテキスト フィールドがあります。

今問題は

ケース1。

上記のように、別のクラスから TestBean クラス オブジェクトを取得している場合、jsp ページに値が反映されません。TestBean オブジェクトも完全に初期化されています

ケース2。

アクションクラスでは、 TestBean クラスのプロパティの値を手動で次のように設定すると

testBeanObject.setFirstProperty("FirstProperty");
testBeanObject.setSecondProperty("SecondProperty");

ビューレイヤーで完全に反射しています。

コードをデバッグしました。オブジェクトが初期化され、両方のケースで正しい値を持っていることを示しています。次に、ケース 1に反映されないのはなぜですか。

助けてください

4

0 に答える 0