Я работаю с 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 на любой другой, а не на «пользователь». Является ли «пользователь» зарезервированным ключевым словом в JSTL? – sunghun
Я не думаю, что 'user' является ключевым словом JSTL. После того, как вы изменили имя ключа, попробовали ли вы снова его вернуть в 'user'? Если он работает и ваш сервер «Tomcat», я думаю, причина в том, что файл 'jsp' был кэширован в папке' work'. Не могли бы вы попробовать и дать некоторую обратную связь? –