2010-06-01 4 views
6

Tôi đã viết một số mã như một Servlet Java và bây giờ tôi đang cố gắng chuyển đổi nó thành một JSP. Tôi đã viết một lớp trong một tập tin riêng biệt mà tôi đã sử dụng, và tôi không thể tìm ra cách để có được tệp tin JSP để nhận ra lớp đó. Tôi đoán nó có một cái gì đó để làm với nhập khẩu. Tôi đưa cho lớp tên gói (package mypackagename;) và tôi đã cố gắng sử dụng <%@ page import="mypackagename"%> nhưng tôi nhận được một lỗi:Nhập một lớp vào một tệp JSP

The import "mypackagename" cannot be resolved

+0

thể trùng lặp của [Làm thế nào để bạn import các classes trong JSP?] (http://stackoverflow.com/questions/239147/how-do-you-import-classes-in-jsp) – jjnguy

Trả lời

9

Chỉ cần nhập nó theo cùng một cách như bạn làm trong một lớp Java thực. I E. import mypackagename.MyClassName hoặc import mypackagename.* và do đó khôngimport mypackagename với chỉ tên gói.

<%@ page import="mypackagename.MyClassName" %> 

Điều đó nói rằng, bạn không nên viết mã Java liệu trong một tập tin JSP. Tập lệnh được coi là thực hành kém. Mã đó thuộc về một lớp Java thực. Nó được đặt hoàn hảo trong lớp Servlet. Nó là gì, vấn đề mà bạn nghĩ rằng đó là giải pháp "đúng" để di chuyển tất cả vào bên xem và làm lộn xộn văn bản mẫu với mã Java thô? Xây dựng về nó trong một câu hỏi mới, sau đó chúng tôi có thể đề xuất các giải pháp phù hợp. Có lẽ bạn đã không nhận thức được sự tồn tại và quyền hạn của taglibs như JSTL?

+0

im không quá chắc chắn những gì bạn có nghĩa là bởi mã java nguyên trong một tập tin jsp. hầu hết mã của tôi là trong lớp tôi muốn nhập, tôi chỉ muốn chạy mã từ lớp trong tệp JSP và hiển thị kết quả. – Michoel

+1

Với mã Java thô, tôi có nghĩa là hơn một thập kỷ * chán nản * tập lệnh *. Tất cả mã Java đó giữa những thứ '<% %>' này. Trong trường hợp cụ thể của bạn, chỉ cần chạy mã đó trong servlet, lưu nó dưới dạng thuộc tính yêu cầu và hiển thị nó bằng JSTL/EL. [Ở đây] (http://stackoverflow.com/questions/1831053/displaying-multiple-records-by-using-resultset/1832524#1832524) và [here] (http://stackoverflow.com/questions/384189/how -do-i-make-a-java-resultset-available-in-my-jsp/2428468 # 2428468) là một số ví dụ. [Đây] (http://courses.coreservlets.com/Course-Materials/csajsp2.html) là hướng dẫn JSP/Servlet tốt hơn. – BalusC

0

Hãy chắc chắn rằng lớp học của bạn là trong WEB-INF/classes của ứng dụng web, và sửa đổi việc nhập khẩu các gói bằng gói. *

+0

cảm ơn cho tip về. * Ở cuối. im chỉ học java vì vậy tôi quên mất điều đó. tôi không biết các tập tin phải đi trong WEB-INF/lớp học, họ đã được đặt tại src/Đối với một số lý do nhật thực không cho phép tôi tạo một thư mục mới trong WEB-INF? (Tôi đang sử dụng plugin appengine của google) – Michoel