我正面臨着一個我無法理解的問題(我的struts2知識並未被使用)。Struts2在setter中傳遞兩次
我在JSP使用了一種形式:
<stags:form method="POST" action="foo" validate="false" theme="simple" id="form" name="form" enctype="multipart/form-data">
<stags:hidden name="A" />
</stags:form>
我第一次拿到了吸氣(木屐)與空字符串=> OK 我後我的形式,然後再顯示在同一個JSP。 在這裏我的問題:
- 我得到了setter太過張貼形式。 A =「」=>確定
- 我的算法運行並設置爲字符串A. A = foo =>確定
- 現在我想展示相同的JSP,但在JSP的getter之前又收到另一個setter調用。而這第二個二傳手電話轉來 「」=> KO
我的Java(通過簡化代碼,我知道):
private String A = "";
public String execute() {
System.out.println("before : " + A);
A = "foo"; //(using "=" or "setA" same result)
System.out.println("after : " + A);
return SUCCESS;
}
public String getA() {
System.out.println("getter : -" + A + "-");
return A;
}
public void setA(String b) {
System.out.println("setter : -" + b + "-");
this.A = b;
}
struts.xml的
<action name="Bar" class="package.Bar">
<result>bar.jsp</result>
</action>
當我張貼,我得到了:
setter : --
before :
after : foo
setter : --
getter : --
所以在我的JSP中,我的輸入總是空的。 執行後有沒有任何方法或類似的東西?
您發送沒什麼後端所以其捐贈' 「」'字符串... ' '那麼它會顯示A值爲 –
它並不能解決我的問題。如果我使用'value =「檢查」'A總是等於「檢查」。它不使用'execute()'修改的值。我從來沒有使用'value','name' struts知道它需要使用'getA()'來填充'value'。 – Tyrael
你怎麼知道它是否被稱爲相同的動作?在填充值之前,可以執行許多代碼,包括getter和setter。所有這些代碼都是隱藏的問題,問題不清楚。你沒有提供任何線索如何調用。所以把這個問題作爲題外話來投票。用模糊的文字回答這個問題是不可能的。 –