2010-08-20 71 views
1

我想要下面的代碼工作,但不知道如何獲取struts標籤外的表單bean。在Struts標籤之外操縱Struts表單Bean數據標籤

<logic:equal name="model" property="answerType" value="TEXT"> 
<% 
    String keyval = "questionAnswer" + "(" + model.getAnswerType() + ")"; 
%> 
<html:text property="<%= keyval %>" value=""></html:text>  
</logic:equal> 

有沒有什麼辦法讓在一個JSP Struts表單bean開始,這樣我可以用比Struts標籤更多的東西來進行一些處理?

對不起,如果這是非常基本的,但可能的方式是:有沒有辦法使JSP頁面與struts表單bean交互,而不使用表單bean意識的struts標記?

根據你的XML文件格式的bean範圍定義(會話,請求或......)

回答

4

你可以從對象從範圍得到:

例如會話:

MyFormBean m = (MyFormBean) session.getAttribute("<form bean name>"); 

你甚至可以使用JSP或JSTL標籤從範圍中獲取此對象。

+0

謝謝。這實際上正是我所期待的。嘗試了它,它完美的作品!礦在請求範圍btw。 我不能投票自己,否則我會。 – venky 2010-08-20 18:55:20

0

提出問題必須引發更高水平的大腦活動。

我找到了答案几乎立即和信貸是:accessing-struts-formbean-attributes-from-jsp

這是我的作品更新的代碼:

  <logic:equal name="model" property="answerType" value="TEXT"> 
       <bean:define id="qlabel" name="model" property="questionLabel" /> 
       <% 
        String keyval = "questionAnswer" + "(" + qlabel + ")"; 
       %> 
       <html:text property="<%= keyval %>" value=""></html:text>    
      </logic:equal> 
0

有四種方法可以從下面得到的值。 1.session 2.page 3.request 4.response 5.應用

1.session 您必須聲明範圍=會話

字符串名稱=的request.getParameter( 「username」 的);

其中用戶名是從文本框的前一頁或您指定的任何內容獲取的。

session.setAttribute(「key」,value); String s = session.getAttribute(「key」);

在會話過期之前可以獲取該值。

+0

這與我關於struts的問題無關。其次,使用會話是一種簡單的方法,除非強烈要求在會話的整個過程中保留一段數據。 – venky 2010-09-05 13:29:18