2013-08-27 2 views
0

Мы используем strusts2 + spring3.2 + struts.spring.plugin Также мы используем Гёльдеровость место для доступа к свойствам в действияхДоступ к Spring Свойства в JSP

Что-то вроде:

@Value("${web.site.name}") private String siteName; 

И у нас есть siteName, готовый и заселенный.

Возможно ли, что мы также можем получить доступ к значению на страницах JSP? Или мы должны сначала получить его из действия struts, а затем передать его JSP.

+0

вы используете Spring контроллеры передать его обратно на страницу JSP. Я спрашиваю, потому что я не работал на Struts + Spring. Если вы используете Spring Controller, в объекте ModelAndView вы можете добавить значение siteName и получить доступ к нему из JSP –

+0

Поскольку вы используете struts2 как структуру MVC, правильный способ - передать все такие значения в пользовательский интерфейс с помощью Controller (класс Actions в struts2) –

+0

Вы можете использовать тег локализации для получения значений из файлов свойств. –

ответ

0

Возможно, вы не можете. Но если вы можете, вы не должны ... Вы должны передать значение с помощью контроллера. Один из способов использования свойства непосредственно в jsp заключается в написании специального тега, который читает файл свойств и выбирает тот, который вам нужен.

Пример (не проверено):

public class TemplateTag extends SimpleTagSupport{ 

    private String propName;//add setter to get it from the tag attribute 

    public void doTag()throws JspException, IOException{ 
     JspWriter out = getJspContext().getOut(); 
     Properties prop = new Properties(); 
       prop.load(new FileInputStream("config.properties")); 


     out.print(prop.getProperty(propName)); 
    } 

Как Александр М предложил вы можете использовать встроенный в тегах: http://www.mkyong.com/struts/struts-internationalizing-or-localization-example/

+2

Нет необходимости в настраиваемом теге. Struts2 также Spring предлагает такие теги. –

Смежные вопросы