在JSP中限制模型的范围

时间:2009-05-27 05:43:17

标签: spring jsp jsp-tags

如果我将名为“foo”的对象放入Spring控制器的模型中,并想限制其范围,我该怎么做呢。

假设我有一个页面使用jsp标记作为参数“foo”。如果我在jsp中调用标签,比如<tag foo="${bar}" />,我觉得模型“foo”正在干扰“bar”。

或者即使不是,如果我只想限制模型“foo”的范围只能在jsp页面中访问,而不能在其他页面中访问(在'ed page或第一个jsp页面调用的标记中)。

1 个答案:

答案 0 :(得分:1)

基本上你不能限制范围。将对象从Controller传递到视图的唯一方法是通过请求范围属性。

如果单个页面有很多不同的视图/控制器,您可能希望为请求属性设置命名约定,例如控制器的类名。唯一的麻烦是访问它们不是那么干净

${requestScope['com.your.app.Controller.RESULT']}

一种可能是用于创建变量的页面范围版本:

<c:set var='result' value="${requestScope['com.your.app.Controller.RESULT']}"/>
...
${result}

在你的例子中,我不确定我会说'foo'干扰'bar'看起来你正在将标签作为参数传递给标签?