2016-08-22 111 views
0

我想爲我的index.jsp頁面使用JSTL,但由於某種原因,每次將項目打包到.war並運行Tomcat後,它都會給我提供以下錯誤:爲Maven(Intellij IDEA)正確安裝JSTL

HTTP Status 500 - /index.jsp (line: 12, column: 0) Unterminated <c:if tag 

HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.index_jsp 

從我對谷歌發現,有2種方式JSTL安裝到您的Maven項目: 1)添加這pom.xml的

<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>jstl</artifactId> 
    <version>1.2</version> 
</dependency> 

2)添加一些jar到WEB-INF/lib中,但是這裏有問題:沒有這樣的文件夾被自動創建,如果我手動執行它沒有幫助。項目結構看起來像這樣: enter image description here

的index.jsp的代碼如下:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<html> 
<head> 
<title><c:if> Tag Example</title> 
</head> 
<body> 
<c:set var="salary" scope="session" value="${2000*2}"/> 
<c:if test="${salary > 2000}"> 
    <p>My salary is: <c:out value="${salary}"/><p> 
</c:if> 
</body> 
</html> 

所以,我應該怎麼做才能讓那些工作?我找不到任何可以幫助我解決問題的指南或信息。感謝您看看我的問題!

回答

1

究竟是什麼編譯器會告訴你:未終止的C:如果標籤

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<html> 
<head> 
<title><c:if> Tag Example</title> 
</head> 
<body> 
<c:set var="salary" scope="session" value="${2000*2}"/> 
<c:if test="${salary > 2000}"> 
    <p>My salary is: <c:out value="${salary}"/><p> 
</c:if> 
</body> 
</html> 

看看你的JSP的4行:

<title><c:if> Tag Example</title> 

它必須是

<title><c:if> Tag Example </c:if></title> 

編輯:好像我解釋得很糟糕,我已經在運行的Web應用程序中測試過,並且這個w AY(這只是我試圖解釋)工作原理:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<html> 
<head> 
<title>&lt;c:if&gt; Tag Example</title> 
</head> 
<body> 
<c:set var="salary" scope="session" value="${2000*2}"/> 
<c:if test="${salary > 2000}"> 
    <p>My salary is: <c:out value="${salary}"/><p> 
</c:if> 
</body> 
</html> 
+0

但是這一次是從http://www.tutorialspoint.com/jsp/jstl_core_if_tag.htm採取和我敢肯定它應該工作。如果我在第4行刪除,頁面不顯示任何內容,顯然標籤不起作用。 –

+0

您錯誤地聲稱關於一個未關閉的c:if標籤,就是第4行中的內容。正確關閉它或刪除它,否則它將不起作用 – jlumietu

+0

我確實刪除了它,但它仍然無法正常工作。現在該頁面只是空白,並且既不提供錯誤消息,也不提供我想要的信息。如果我使用這個示例http://www.tutorialspoint.com/jsp/jstl_core_foreach_tag.htm,它會顯示Item $ {i} 5次而不是'Item 1'等 –