คุณจะนำเข้าคลาสใน JSP ได้อย่างไร


233

ฉันเป็นผู้เริ่มต้น JSP ที่สมบูรณ์ ฉันกำลังพยายามใช้java.util.Listในหน้า JSP ฉันต้องทำอะไรเพื่อใช้คลาสที่นอกเหนือจากคลาสjava.lang?


5
ไม่ต้องพูดถึงว่านี่ไม่ใช่วิธีปฏิบัติที่ดีที่สุด;)
BalusC

คำตอบ:


341

ใช้คำสั่งการนำเข้าต่อไปนี้เพื่อนำเข้าjava.util.List:

<%@ page import="java.util.List" %>

BTW เพื่อนำเข้ามากกว่าหนึ่งคลาสให้ใช้รูปแบบต่อไปนี้:

<%@ page import="package1.myClass1,package2.myClass2,....,packageN.myClassN" %>

9
คุณไม่ต้องการ / ต้องการอัฒภาคนั้นในตอนท้าย
TJ Crowder

8
คุณควรใส่ทุกอย่างไว้ในบรรทัดเดียวหรือแยกหลายบรรทัดเพื่อให้อ่านง่าย
Xonatron

6
เช่นเดียวกับฉันอย่าลืมเครื่องหมาย "@" คุณไม่สามารถเขียนลงในสลิปเปอร์โดยตรงได้ <%%>
Eildosa

7
การดูแลรักษารายชื่อของการนำเข้าจำซ้ำกันเรียงลำดับ ฯลฯ จะมากง่ายขึ้นถ้าคุณไม่ ได้ใส่ทั้งหมดของพวกเขาในหนึ่งบรรทัด ในความเป็นจริงผมจะไปเท่าที่บอกว่าผมขออยากแนะนำให้กับการวางพวกเขาทั้งหมดในหนึ่งบรรทัด
scunliffe

ใช้ taglib ถ้าคุณทำได้! และ lib แท็กอยู่ข้างใน ... ซ้อนกันtutorialspoint.com/jsp/jsp_standard_tag_library.htm
tgkprog

49

FYI - หากคุณนำเข้ารายการเข้าสู่ JSP โอกาสที่ค่อนข้างดีที่คุณละเมิดหลักการ MVC ใช้เวลาไม่กี่ชั่วโมงในขณะนี้ที่จะอ่านบนวิธี MVCกับการพัฒนาเว็บแอป (รวมถึงการใช้ taglibs) - ทำบางอย่างมากขึ้น googling ในเรื่องที่มันเป็นที่น่าสนใจและแน่นอนจะช่วยให้คุณเขียนปพลิเคชันที่ดีขึ้น

หากคุณกำลังทำอะไรที่ซับซ้อนมากกว่า JSP เดียวที่แสดงผลลัพธ์ของฐานข้อมูลโปรดพิจารณาการใช้เฟรมเวิร์กเช่นSpring , Grailsและอื่น ๆ ... มันจะช่วยให้คุณพยายามมากขึ้นอีกเล็กน้อย แต่จะช่วยให้คุณประหยัดได้มาก เวลาและความพยายามไปตามถนนที่ฉันแนะนำจริงๆ นอกจากนี้ยังมีสิ่งดีๆ :-)


51
ลงคะแนนสำหรับการบรรยายแทนที่จะตอบคำถาม
Willis Blackburn

71
upvote สำหรับการบรรยายแทนคำตอบของคำถาม
grinch

7
+1 บางครั้งการส่องแสงไปในทิศทางที่ถูกต้องเป็นสิ่งจำเป็นเมื่อ OP ดูเหมือนว่าจะอยู่ในความมืดและทำสิ่งต่าง ๆ ในทางที่ไม่ถูกต้อง
adarshr

3
เรียกฉันว่าเป็นคนนอกรีต แต่ฉันมักจะใช้รายการ (และ POJO อื่น ๆ มากมาย) ใน JSP แน่นอนว่านี่เป็นข้อ จำกัด อย่างเคร่งครัดในการพิสูจน์แนวคิดและ JSP ขนาดเล็กแบบทำทุกอย่างซึ่งมีวัตถุประสงค์เพื่อวัตถุประสงค์เฉพาะและชั่วคราวอย่างหนึ่ง ฉันยังหาวิธีที่เร็วกว่าในการสร้าง webclip / เว็บเพจขนาดเล็กที่มีความเชี่ยวชาญสูง แน่นอนว่าเมื่อเขียนแอป / เว็บไซต์ "ของจริง" นี่ก็ไม่ได้พิจารณาด้วยซ้ำ
pieroxy

4
@KevinDay ให้อภัยความไม่รู้ของฉัน แต่ในระยะสั้นวิธีการเข้าถึงรายการทำลาย MVC? ถ้าฉันกำลังแก้ไขรายการแน่นอน แต่ถ้าฉันแค่อ่านรายการจากนั้นนั่นเป็นการละเมิดหลักการ MVC หรือไม่?
Martin Carney

20

ในแท็กหน้า:

<%@ page import="java.util.List" %>

1
ทำไมคุณต้องนำเข้าคลาสไฟล์และ IOException หรือว่าคุณเพิ่งแจ้งผู้ถามเกี่ยวกับวิธีนำเข้ามากกว่าหนึ่งคลาสใน JSP
Vijay Dev

2
Axeman, java, lang ใช้ได้ แต่คลาส java.util จะไม่ถูกรวมโดยอัตโนมัติ หรือเป็นกรณีของ JSP ????
akjain

5

ใช้ Page Directive เพื่อนำเข้า Class ในหน้า JSP Page Directive ใช้ 11 ประเภทที่แตกต่างของคุณสมบัติหนึ่งในนั้นคือ "นำเข้า" Page Directive พร้อมแอททริบิวต์การนำเข้าช่วยให้คุณพูดถึงมากกว่าหนึ่งแพ็คเกจในที่เดียวกันโดยคั่นด้วยเครื่องหมายจุลภาค (,) อีกวิธีหนึ่งคุณสามารถมีองค์ประกอบของหน้าหลายอินสแตนซ์โดยแต่ละแพ็คเกจมีแพ็คเกจที่แตกต่างกัน

ตัวอย่างเช่น:

 <%@ page import = "java.io.*" %>
 <%@ page import = "java.io.*", "java.util.*"%>

หมายเหตุ: แอ็ตทริบิวต์การอิมพอร์ตควรถูกวางไว้ก่อนอิลิเมนต์ที่เรียกคลาส importd


5

ในกรณีที่คุณใช้ JSTL และคุณต้องการนำเข้าคลาสในหน้าแท็กแทนที่จะเป็นหน้า jsp ไวยากรณ์จะแตกต่างกันเล็กน้อย แทนที่คำว่า 'หน้า' ด้วยคำว่า 'แท็ก'

แทนที่จะเป็นคำตอบที่ถูกต้องของแซนด์แมน

<%@page import="path.to.your.class"%>

ใช้

<%@tag import="path.to.your.class"%>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.