我是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>
答案 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>