【问题标题】:Struts: Reference a Form-Bean as a Variable in Common JSPStruts:在 Common JSP 中将 Form-Bean 引用为变量
【发布时间】:2014-12-12 04:50:50
【问题描述】:

我有一个公共的 JSP 包含在其他页面中;它通常必须显示来自 bean 的某个列表。

所有主要的 JSP 都使用该 bean 的某个子类。

在 struts-config.xml 中,假设我的 Action Form bean 有一个特定的定义作为示例,

<form-bean name="rr5YearBudgetForm"  type="myapp.form.My5YearBudgetActionForm" />

通用 JSP 需要以一般方式检查该 bean 的属性(使用我传入的 bean);这些是所有表单 bean 都支持的属性。现在,使用下面的特定 Form Bean 是硬编码的,但它必须与传入的任何 bean 一起使用。

 <c:if 
            test="${rr5YearBudgetForm.saved == true || fn:length(rr5YearBudgetForm.budgetPeriods) > 1}">

问题是,如何传入包含我的表单bean 的特定变量?我尝试了这个简单的 c:set var,但它定义了一个没有属性的字符串。

调用 JSP

<c:set var="budgetForm" value="rr5YearBudgetForm" scope="request" />    
<%@ include file="common.jsp" %>

通用 JSP

<c:if test="${budgetForm.saved == true || fn:length(budgetForm.budgetPeriods) > 1}">

但这不起作用。我需要一种方法来传递实际的 bean 而不是字符串。

【问题讨论】:

  • 这是哪个 Struts 版本?
  • @AndreaLigios Struts 1.3
  • 那你为什么把它标记为 Struts2 呢?
  • 我的错误。它不再标记为 Struts 2。现在有人对其进行了更改。

标签: java jsp struts struts-1


【解决方案1】:

请尝试bean标签:

<s:bean name="com.mkyong.common.action.HelloBean" var="hello">
  <s:param name="msg">Hello Bean Tag</s:param>
</s:bean>

这个标签库包含用于访问 bean 及其属性的标签,以及定义新的 bean(基于这些访问),这些新 bean 可以通过脚本变量和页面范围属性被页面的其余部分访问。

【讨论】:

  • 这个标签是 Struts 的一部分吗?或者我在哪里可以得到这个库?
  • 在您的示例中,该库中没有“bean”标签。有“define”、“write”等标签。你是从不同的库中拉出来的吗?
  • 要么使用 : bean (struts-bean.tld) - uri: struts.apache.org/tags-bean 要么使用 ...它们中的任何一个都应该工作
猜你喜欢
  • 2018-07-09
  • 1970-01-01
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多