Ограничение области действия модели в JSP - PullRequest
1 голос
/ 27 мая 2009

Если я помещаю объект с именем «foo» в модель в Spring-контроллере и хочу ограничить его область действия, как я могу это сделать.

Допустим, у меня есть страница, которая использует тег jsp, который принимает в качестве параметра "foo". Если я называю тег внутри jsp, как <tag foo="${bar}" />, мне кажется, что модель "foo" мешает "bar".

Или даже если нет, если я просто хочу ограничить область видимости модели "foo", чтобы она была доступна только на странице jsp, но не на других (ни на странице ed, ни в теге, который вызывает первая страница jsp).

1 Ответ

1 голос
/ 27 мая 2009

По сути, вы не можете ограничить область действия. Единственный способ передать объекты из контроллера в представление - через атрибуты области запроса.

Если у вас есть много разных представлений / контроллеров для одной страницы, вы можете захотеть иметь соглашение об именах для ваших атрибутов запроса, что-то вроде имени класса контроллера. Единственная проблема в том, что доступ к ним не так чист.

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

Одним из возможных способов является использование версий переменных области видимости страницы:

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

В вашем примере я не уверен, что скажу, что 'foo' мешает 'bar', похоже, вы передаете bar тегу в качестве параметра?

...