Доступ к значению компонента Struts из Java-класса - PullRequest
0 голосов
/ 23 декабря 2010

Я нахожусь в процессе обновления некоторого довольно старого и неприятного кода, когда я сталкиваюсь с ошибкой. Мой предшественник заполняет значения по умолчанию для переменных внутри файла JSP (с помощью скриптлетов и бинов Struts).

Можно ли как-нибудь получить доступ к значению bean-компонента struts из класса (модели) Java или использовать его определения bean-компонента для ссылки на это значение и передать его моему Java-бину?

(я новичок в бобах, так что будьте осторожны)

Вот как он в настоящее время получает значения по умолчанию

<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<bean:define id="SummaryNumbers" name="SummaryNumbers" type="QueryResults"/>

Вот как я получаю доступ к классу модели

<jsp:useBean id="content" class="com.xxx.xxx.ProductionContent">
    <jsp:setProperty name="content" property="summaryNumbers"  /> 
</jsp:useBean>

Ответы [ 2 ]

2 голосов
/ 30 декабря 2010

Я полагаю, что вы используете Struts 1, и для этого есть лучший подход. В вашем классе действий Struts

public class ProductionAction extends DispatchAction {
        public ActionForward showProductionConent(ActionMapping mapping, ActionForm form,
                HttpServletRequest  request,HttpServletResponse response) throws STException  
        {           
            //.. get productionContent here
            request.setAttribute("productionContent",productionContent);    
            return mapping.findForward("showProductionContent");
        }   
    }

в вашем JSP Вы можете использовать EL для извлечения данных, как это

<td>Production Content Name: ${productionContent.name}</td>

Или вы можете использовать html-тег Struts для получения таких данных (вам нужно правильно связать bean-компонент формы в struts-config.xml)

   <td>Production Content Name: <html:text property="name"></td>
0 голосов
/ 23 декабря 2010

Вы должны иметь возможность использовать простые методы получения и установки (getSummaryNumbers(), setSummaryNumbers()) для каждого свойства в классе Bean, если оно правильно связано.

...