D'abord, j'ai un contrôleur Spring 3.0 avec une méthode similaire à celle-ci.Comment passer un objet du contrôleur Spring 3.0 à la vue JSP et tester avec JSTL
Je passe la vue à un objet nommé "message" et espère imprimer ce message via la vue si elle a été définie par la méthode "doStuff".
@RequestMapping("/index")
public ModelAndView doStuff() {
ModelAndView mav = new ModelAndView();
Map<String, String> message = new HashMap<String, String>();
message.put("message", "Hello World");
mav.setViewName("pages/myView");
mav.addObject("message", message);
return mav;
}
La vue est similaire à ce qui suit,
<%@ page session="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
<html>
<head>
<title>Test</title>
</head>
<body>
<c:if test="${message.message} != null">
<div class="msg">test1: ${message.message}</div>
</c:if>
<c:if test="${message.message} != ''">
<div class="msg">test2: ${message.message}</div>
</c:if>
<c:if test="${message.message}">
<div class="msg">test3: ${message.message}</div>
</c:if>
<c:if test="not empty ${message.message}">
<div class="msg">test4: ${message.message}</div>
</c:if>
<div class="msg">test5: ${message.message}</div>
</body>
</html>
Jusqu'à présent, seul "test5" imprime le message, mais je veux seulement imprimer le message si « $ {} message.message " est non nulle.
J'ai essayé à la fois « http://java.sun.com/jstl/core_rt » et « http://java.sun.com/jstl/core », mais ne peut pas sembler obtenir le « < c: si/> » déclarations de travailler correctement.
Est-ce que quelqu'un aurait des idées sur ce que je fais mal ou une meilleure façon de le faire?
Merci
Oh merci tas - c'est ce qu'il était. – wsams
@ user272159: Vous avez seulement ** vraiment ** besoin de vous débarrasser des URI obsolètes et des anciens JAR JSTL. Voir aussi ma réponse. – BalusC