从Java类访问struts bean的值

时间:2010-12-22 22:37:42

标签: java jsp struts javabeans

当我遇到障碍时,我正在更新一些相当古老而令人讨厌的代码。我的前任是在JSP文件中填充变量的默认值(通过scriptlet和Struts bean)。

有没有办法让我从java类(模型)访问struts bean的值,或者可以使用他的bean定义来引用值并将它传递给我的Java bean?

(我是豆子新手,所以要温柔)

以下是他目前检索默认值的方式

<%@ 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 个答案:

答案 0 :(得分:2)

我相信你正在使用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>

或者您可以使用struts html标签来检索这样的数据(您需要在struts-config.xml中正确绑定表单bean)

   <td>Production Content Name: <html:text property="name"></td>

答案 1 :(得分:0)

如果绑定正确,您应该能够为Bean类中的每个属性使用简单的getter和setter(getSummaryNumbers()setSummaryNumbers())。