我正在使用SpringMVC3.2和JSP,我正在尝试显示用户信息。但是我在JSP页面上显示它有问题。
这是我的控制器和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 / pages中。
我做错了什么?任何帮助将不胜感激。
答案 0 :(得分:1)
如果我没有错,检查'用户'的条件是不正确的。
你应该使用
<c:when test="${not empty user}">
或
<c:when test="${user ne null}">
希望这会对你有所帮助。 :)
答案 1 :(得分:1)
根据我的说法,你在JSTL语法中犯了错误,所以用于打印数据或者只是看看如下。
<C:if test="${!empty user}">
</c:if>
或者你也可以这样做。
<c:when test="${not empty user}">
</c:when>
或者你也可以这样做。
<c:when test="${!empty user}">
</c:when>
试试这个,你的代词会很短暂。
答案 2 :(得分:-1)
尝试将JstlView
添加到InternalResourceViewResolver
。
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix">
<value>/WEB-INF/pages/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
这将确保正确评估JSP中的EL表达式。