将布局渲染的输出设置为变量(条纹)

Setting output of layout-render to a variable (stripes)

我正在尝试重用在 jsp 中设置并在 Stripes 布局渲染中使用的变量。

主页:/index.jsp

布局渲染页面:/jsp/widgets/signin/oAuthUrl.jsp

我的 /jsp/widgets/signin/oAuthUrl.jsp 有一个名为 ${oauth_url} 的 c:set 变量。但是当我通过 s:layout-render name="/jsp/widgets/signin/oAuthUrl.jsp" 调用布局渲染页面时,我希望能够使用其中的任何变量,就像我包含该脚本一样。但是我不能在 index.jsp.

中使用 ${oauth_url}

我什至试过这样做,但不出所料:

<c:set var="oauth_url" value="<s:layout-render name="/jsp/widgets/signin/oAuthUrl.jsp" 
buttonType="signup"/>"/>
<s:link href="${oauth_url}">

如何重用 /jsp/widgets/signin/oAuthUrl.jsp 中设置的变量?基本上,我怎样才能使它成为 index.jsp 页面的全局,以便它可以在其他地方使用?

如果我只想使用 /jsp/widgets/signin/oAuthUrl.jsp 中声明的 c:set 值,我应该使用不同的标签而不是 s:layout-render 导入吗?我仍然想给它传递一些属性——比如 buttonType。

默认情况下,使用 <c:set ... /> 设置的变量具有 page 范围,并且在该页面之外不可用。

要使请求的嵌套层次结构更高层的其他模板可以使用变量,请使用 request 范围:

<c:set var="…" value="…" scope="request" />