2010-08-20 3 views
1

Я хотел бы, чтобы следующий код работал, но понятия не имею, как добраться до формы bean вне тега struts.Manupulate Struts Form Bean Data Out of Struts Tags

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

Есть ли способ, чтобы получить в распорок форме боба в JSP, так что я могу использовать нечто большее, чем распорки теги выполнить некоторую обработку?

Извините, если это ужасно просто, но, возможно, это можно сделать так: есть ли способ, чтобы страница JSP взаимодействовала с bease-компонентами struts без использования тегов struts, которые являются компонентами bean-компонента?

ответ

4

на основе формы определения области действия боба (сессия, запрос или ...) в вас XML-файл, который вы можете получить от объекта из этой сферы:

пример сеанса:

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

вы можете даже используйте теги JSP или JSTL, чтобы получить этот объект из области.

+0

спасибо. это на самом деле именно то, что я искал. Пробовал, и он отлично работает! Mine была в зоне запроса кстати. Я не могу проголосовать за себя, иначе я бы хотел. – venky

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.Application

1.session Вы должны объявить объем = сеанс

Строка имя = request.getParameter ("имя пользователя");

где имя пользователя получено от предыдущей страницы текстового поля или всего, что вы указали.

session.setAttribute ("ключ", значение); Строка s = session.getAttribute ("ключ");

Значение может быть получено до окончания сеанса.

+0

Это действительно не имеет никакого отношения к моему вопросу, касающемуся расположений. во-вторых, использование сеанса - это простой выход и плохая практика, если нет сильного требования о том, чтобы часть данных хранилась в течение всего сеанса. – venky