我正在使用SpringMVC3.2和JSP,我试图显示用户信息。但我有问题在JSP页面上显示它。JSTL无法从服务器接收数据
这里是我的控制器和JSP页面:
@Controller
@RequestMapping("/map")
public class EventDataController {
private Logger log = LoggerFactory.getLogger(EventDataController.class);
@Autowired EventDataService eventDataService;
@Autowired UserService userService;
@RequestMapping(method = RequestMethod.GET)
public ModelAndView index() {
ModelAndView mv = new ModelAndView("devicemap");
UserDetails sessionUser = SecurityUtils.currentUserDetails();
User user = userService.findUser(sessionUser.getUsername());
log.info("user==>" + user);
if (user==null){
mv.addObject("error", "Cannot find user.");
} else {
mv.addObject("user", user);
}
return mv;
}
}
devicemap.JSP
<span class="alert" id="userInfo">
<c:choose>
<c:when test="${!empty user}">
${user.userId}
</c:when>
<c:otherwise>
User not found
</c:otherwise>
</c:choose>
</span>
applicationContext.xml
<!-- ViewResolver for JSP -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
当我检查用户对象的控制器,它拥有用户数据和devicemap.jsp是在WEB-INF /页。
我做错了什么?任何帮助,将不胜感激。
它在我将ModelAndView中的键名更改为任何其他名称而不是'user'时起作用。 '用户'是JSTL中的保留关键字吗? – sunghun
我不认为'user'是JSTL的关键字。更改密钥名称后,是否尝试再次将其更改回'user'?如果它的工作原理和你的服务器是'Tomcat',我想原因是'jsp'文件被缓存在'work'文件夹中。你可以尝试并提供一些反馈? –