私の目的は、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に反映されないのはなぜですか。
助けてください