[英]How to pass an object inside a jsp page [s:iterator] to an action class?
我有一個 JSP 頁面,顯示一個名為docsFacebook
的對象。 我需要將此對象傳遞給操作類以處理其內容。 怎么做?
JSP
<s:iterator value="docsFacebook">
<p>
<img src="images/fb.png" />
<b><s:property value="Newspaper"/></b>
<s:property value="Date"/></p>
<p><s:property value="Message"/></p>
<p><a href=<s:property value="Link_url"/>>
<s:property value="Link_url"/></a>
</p>
<br></br>
</s:iterator>
在同一頁面中,我有一個按鈕,其中包含指向操作類的鏈接。
<a href="<s:url action="display" />">Facebook</a>
如何從該操作類中檢索此數據?
struts.xml
<struts>
<package name="default" extends="struts-default">
<action name="doFirstQuery" class="action.FirstQuery">
<result name="success">success.jsp</result>
<result name="failure">error.jsp</result>
</action>
<action name="doFollowingQuery" class="action.FollowingQuery">
<result name="success">success.jsp</result>
</action>
<action name="display" class="action.Display">
<result name="success">dis.jsp</result>
</action>
</package>
</struts>
由於您正在讀取數組,因此在源操作中需要一個數組 getter :
public Risultato[] getDocsFacebook(){...}
然后在頁面中選擇單個元素,因此在目標操作中需要一個對象設置器:
public void setDocsFacebook(Risultato risultato){...}
要發送對象,您有兩個問題:
打印出來的屬性不是表單元素,而是純文本; 然后您需要為每個人使用一個隱藏字段來發送值:
<s:property value="foo" /> <s:hidden name="foo" /> <s:textfield name="bar" />
要從迭代集合中發送單個對象,您需要使用 OGNL 指定索引。 整個事情在這個答案中得到了很好的描述,請務必閱讀全部內容。
您的(非常意大利化的)日志告訴您,由於存在某種轉換或驗證錯誤,因此會返回 INPUT 結果。
INPUT 與 ERROR 不同,因為它表示用戶插入的數據中存在可恢復的錯誤,它應該要求用戶再次輸入它們,而不是例如跳轉到錯誤頁面。
我強烈建議您閱讀INPUT 結果是什么。
在Display
操作類中創建一個variablename
(一些屬性來保存docsFacebook
值)屬性,並向其寫入 setter 和 getter 方法。
如果docsFacebook
是Risultato
類型,那么
在Dsiaply
操作類中
private Risultato variablename;
public Risultato setVariablename(Risultato variablename)
{
............
}
public Risultato getVariablename()
{
.............
}
現在在JSP
調用動作類方法
<a href='display?variablename=<s:property value="docsFacebook"/>'>Facebook</a>
如果您單擊Facebook
鏈接,將調用display
操作類方法。
如果docsFacebook
是Risultato[]
類型,則在Display
action 類中用Risultato[]
替換Risultato
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.