如何使用属性文件从控制器为<form:select>分配选项值?

时间:2015-12-31 06:12:57

标签: java spring jsp

我是Spring MVC的初学者。我想知道如何从我的控制器分配选项值。以及如何将值传递给选择值?

msg.properties

 num=1,2,3

test.java

 import java.util.List;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;

 @Controller
 public class test {

   @Value("#{'${num}'.split(',')}")
   private List<String> num;

   @RequestMapping(method = RequestMethod.GET)
   public String getproperties(ModelMap model) {
    model.addAttribute("num", this.num);
    return "zzz"
  }

zzz.jsp

 <body>
 <form>
    <select>
       <option value="NONE"> --SELECT--</option>
       <option items="${num}"></option>
    </select>
 </form>
 </body>

1 个答案:

答案 0 :(得分:1)

首先确保msg.properties位于资源目​​录中并包含在您的应用程序中。例如,您可以将此文件放在项目根目录的resources目录中,然后添加到 pom.xml build部分:

<build>
...
  <resources>
     <resource>
        <directory>resources</directory>
     </resource>
  <resources>
</build>

在下一步,您需要将属性占位符添加到servlet-context.xml

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="locations">
      <list>
         <value>classpath:msg.properties</value>
      </list>
   </property>
</bean>

之后,您可以将属性注入控制器:

     @Controller
     public class test {

           @Value("${num}")
           private String numString;

           @RequestMapping(method = RequestMethod.GET)
           public String getproperties(ModelMap model) {
              String [] numArray = numString.split(",")
              model.addAttribute("numArray", numArray);
              return "zzz"
           }
     }

您没有指定,是否使用模板引擎。但是如果你使用的是JSTL:

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 <html>
 <head>
    <title></title>
 </head>
 <body>
 <form>
    <select>
       <option value="NONE"> --SELECT--</option>
       <c:forEach items="${numArray}" var="item">
          <option value="${item}"/>${item}</option>
       </c:forEach>
    </select>
 </form>
 </body>
相关问题