2010-01-26 25 views
6

Khi tôi đang sử dụng <% @ bao gồm%> chỉ thị trong JSP, có cách nào để có cú pháp Eclipse kiểm tra các tệp được bao gồm của tôi hay không hoặc cách thực hành tốt nhất cho việc này là gì. Những gì tôi có nghĩa là nếu tôi bao gồm các tập tin có biến tuyên bố trong phụ huynh, tôi nhận được một loạt các lỗi về biến không khai báo (có ý nghĩa).Làm cách nào để Eclipse kiểm tra cú pháp bên trong <% @ bao gồm%> chỉ thị trong JSP?

Vậy làm cách nào để mọi người giải quyết vấn đề này?

Trả lời

2

Disable JSP xác nhận trong Eclipse (nó luôn luôn là một failure), hoặc tốt hơn, chỉ cần không sử dụng scriptlets. Nó được coi là bad practice. Giữ mã Java trong các lớp Java thực và sử dụng thẻ taglibs/EL trong JSP.

0

Bạn có chắc chắn bạn đang sử dụng

<%@ include ... %> 

và không

<jsp:include ... >? 

Tôi muốn làm rõ rằng đây là kịch bản mà bạn đang nói về:

includeMe.jsp:

<%@ page language="java" %> 
<% 
boolean testBoolean = true; 
%> 

App.jsp:

<%@ page language="java" %> 
<%@include file="/WEB-INF/includeMe.jsp"%> 
<% 
testBoolean = false; 
%> 

Và bạn đang gặp lỗi biến không khai báo trên tệp TestBoolean trong tệp App.jsp? Nếu đây là trường hợp, tôi không chắc chắn những gì là sai, bởi vì tôi không thể sao chép vấn đề này trong Eclipse 3.5 (với WTP cài đặt).

này có thể giúp cũng như: Variables in jsp pages with "included" pages

+0

Tôi đang làm ngược lại, khai báo một biến trong App.jsp và truy cập biến trong includeMe.jsp. Tôi sẽ chuyển tất cả sang các lớp và thẻ Java. – Mason

2

Cách tốt nhất là đóng gói tất cả mã Java dưới dạng thẻ và sau đó sử dụng các thẻ trong JSP của bạn. Như một phần thưởng khi bạn làm điều này bạn sẽ viết java của bạn trong các tệp .java, có cú pháp Eclipse sẽ kiểm tra cho bạn. Bạn có thể tìm thêm thông tin về thẻ from Sun

0

Nội dung đoạn của bạn sẽ được xác nhận là một phần của việc xác thực tệp chính, nghĩa là mọi lỗi được tìm thấy sẽ được báo cáo lại chỉ thị bao gồm trong tệp chính. Đoạn của bạn có thể chính xác hoặc không hợp lệ vì các lý do khác nhau tùy thuộc vào tệp nào bao gồm nó, giả sử bất kỳ tệp nào bao gồm nó.

Các vấn đề liên quan