2017-04-07 3 views
0

JSTLの使い方を教えています。変数が存在する場合、DIVや他のHTMLタグにJSTLが表示されているかどうか

変数がコントローラから設定されていないときに私のビューにDIVを表示したり表示したりするのに問題があります。

テンプレート管理のためにTilesを使用したSpring Boot Mavenプロジェクトに取り組んでいます。

私は私のコントローラでうまく変数を設定し、私は私のJSPビューでちょうど同様にそれを見て、次のようにこの場合には、私のDIVにそれを表示することができます:私はから期待

<c:if test="${!empty loggeduser}"> 
    <div class="alert alert-success alert-dismissible" role="alert"> 
     <button type="button" class="close" data-dismiss="alert" 
      aria-label="Close"> 
      <span aria-hidden="true">&times;</span> 
     </button> 
     <strong>${loggeduser.email}</strong> Welcome to the new project! 
    </div> 
</c:if> 

loggeduser変数が設定しても、またはいないされていない場合は、他の手でJSTL Working fine

loggeduser変数が設定されている場合は、単に次の画像のように、「電子メールへようこそ」アラートに全体DIVタグを印刷することを、このコード存在すると、DIVはまったく表示されません。しかし、loggeduserが存在しないときに私が得たのは、ユーザーの電子メールなしで警告に表示されるDIVです。次の画像のように:JSTL Not working as expected

私のコントローラに変数を設定すると、完全なDIVが表示されます。変数が設定されていないか、存在しない場合は、DIVを表示/印刷しないでください。

P.S:これは私のコントローラの方法です。

@PostMapping("/login/entry") 
public String checkUserInfo(@Valid LoginUser loginUser, BindingResult bind, Model model) { 
    logger.info("Entry"); 
    if (bind.hasErrors()) { 
     logger.info("Bind has errors"); 
     model.addAttribute("hideTemplates", true); 
     return "loginpage"; 
    } 
    model.addAttribute("loggeduser", loginUser); 
    return "aboutpage"; 
} 
+0

test = "$ {not empty loggeduser.email}"としてください。 –

+0

同じ結果です。 'test =" $ {!empty loggeduser.email} 'と' test {"empty loggeduser.email}'は元の 'test =" $ emptyuser "}と同じイメージを表示します。私はそれが多くの仕事を取るべきではないと感じ、それは私を夢中にさせている。 – f6rnando

答えて

0

私はテンプレート管理のためにTilesを使用しています。ここでの問題は、JSPライン<%@ taglib prefix='c' uri='http://java.sun.com/jsp/jstl/core' %>がカスケードに含まれていないことです。

私はJSTL ELを使用しなければならなかったすべてのビューファイルにそのJSP行を含めて私の問題を解決しました。

関連する問題