我想記錄一個Action傳遞給View的所有輸出視圖範圍對象(就像一個JSP)。如何獲取所有視圖範圍對象?
我想從行動本身打印所有。我的意思是:在動作執行結束時,就在'ActionResult'返回語句之前。
例如,我想這樣做如下:
public class HelloWorldAction extends ActionSupport
{
private String errorMessage;
public String getErrorMessage()
{
return this.errorMessage;
}
public void setErrorMessage(String errorMessage)
{
this.errorMessage = errorMessage;
}
public String execute()
{
this.setErrorMessage("Error!!!");
Enumeration keys = ServletActionContext.getResponse().getParameterNames();
StringBuilder strB5r = new StringBuilder();
strB5r.append("Response parameters : ");
while (keys.hasMoreElements())
{
String key = (String)keys.nextElement();
strB5r.append("[").append(key).append(": ").append(ServletActionContext.getResponse().getAttribute(key).toString()).append("]");
}
System.out.println(strB5r.toString());
return Action.SUCCESS;
}
}
我想看看在cosole輸出爲:
Response parameters : [errorMessage : Error!!!]
的問題是,
ServletActionContext.getResponse()。getParameterNames(); 。
不存在,相反的是,我們可以要求做到:
ServletActionContext.getRequest()getParameterNames();
我們應該怎麼做才能列出操作中的所有輸出視圖範圍對象?
Ps。我更喜歡不使用java反射的原因很多:主要是性能。
沒有這樣的範圍可用。這個問題不清楚。請澄清您的具體問題或添加更多的細節,以確切地突出你所需要的。正如目前所寫,很難確切地說出你在問什麼。請參閱「如何問問」頁面以獲取有關澄清此問題的幫助。 –
如果您在Action中聲明變量及其getter和setter,則Struts2允許將對象傳遞給視圖。現在:我怎樣才能讓所有傳遞給視圖的對象不使用java反射?謝謝 – 0bot
@ 0bot傳遞給視圖的對象是動作本身。 –