de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 ansgri
ansgri
Question

Bagaimana cara mengeluarkan HTML dari JSP <%! ...%> blok?

Saya baru saja mulai belajar teknologi JSP, dan menemukan sebuah tembok.

Bagaimana Anda mengeluarkan HTML dari sebuah metode dalam blok deklarasi JSP <%! ...%> blok deklarasi JSP?

Ini tidak berhasil:

<%! 
void someOutput() {
    out.println("Some Output");
}
%>
...
<% someOutput(); %>

Server mengatakan tidak ada ' tidak ada ' ldquo; keluar & rdquo;.

U: Saya tahu bagaimana menulis ulang kode dengan metode ini mengembalikan string, tetapi apakah ada cara untuk melakukan ini di dalam <%! void () { } %> ? Meskipun mungkin tidak optimal, ini masih menarik.

36 2008-09-26T12:03:10+00:00 3
 ansgri
ansgri
Pertanyaan edit 26 September 2008 в 4:46
Pemrograman
jsp
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Ashley Mercer
Ashley Mercer
26 September 2008 в 12:09
2008-09-26T12:09:28+00:00
Lebih
Sumber
Sunting
#8513097

Anda tidak dapat menggunakan variabel (atau variabel lain yang telah dideklarasikan sebelumnya) di dalam direktif.

Halaman JSP akan diterjemahkan oleh webserver Anda ke dalam servlet Java. Di dalam tomcat, misalnya, semua yang ada di dalam scriptlet (yang dimulai "<%"), bersama dengan semua HTML statis, diterjemahkan ke dalam satu metode Java raksasa yang menulis halaman Anda, baris demi baris, ke instance JspWriter yang disebut "out". Inilah sebabnya mengapa Anda dapat menggunakan parameter "out" secara langsung di scriptlets. Di sisi lain, arahan (yang dimulai dengan "<%!") diterjemahkan sebagai metode Java yang terpisah.

Sebagai contoh, halaman yang sangat sederhana (sebut saja foo.jsp):

<html>
    <head/>
    <body>
        <%!
            String someOutput() {
                return "Some output";
            }
        %>
        <% someOutput(); %>
    </body>
</html>

akan berakhir dengan tampilan seperti ini (dengan banyak detail yang diabaikan untuk kejelasan):

public final class foo_jsp
{
    // This is where the request comes in
    public void _jspService(HttpServletRequest request, HttpServletResponse response) 
        throws IOException, ServletException
    {
        // JspWriter instance is gotten from a factory
        // This is why you can use 'out' directly in scriptlets
        JspWriter out = ...; 

        // Snip

        out.write("<html>");
        out.write("<head/>");
        out.write("<body>");
        out.write(someOutput()); // i.e. write the results of the method call
        out.write("</body>");
        out.write("</html>");
    }

    // Directive gets translated as separate method - note
    // there is no 'out' variable declared in scope
    private String someOutput()
    {
        return "Some output";
    }
}
29
0
 paradoja
paradoja
26 September 2008 в 12:19
2008-09-26T12:19:05+00:00
Lebih
Sumber
Sunting
#8513098

Saya kira ini akan membantu:

<%! 
   String someOutput() {
     return "Some Output";
  }
%>
...
<%= someOutput() %>

Bagaimanapun, bukanlah ide yang baik untuk memiliki kode dalam tampilan.

 paradoja
paradoja
Jawaban edit 26 September 2008 в 2:01
10
0
Garth Gilmour
Garth Gilmour
26 September 2008 в 4:57
2008-09-26T16:57:05+00:00
Lebih
Sumber
Sunting
#8513099

Yang perlu Anda lakukan adalah mengoper objek JspWriter ke dalam metode Anda sebagai parameter, yaitu

void someOutput(JspWriter stream)

Kemudian panggil melalui:

<% someOutput(out) %>

Objek penulis adalah variabel lokal di dalam _jspService sehingga Anda harus memasukkannya ke dalam metode utilitas Anda. Hal yang sama akan berlaku untuk semua referensi bawaan lainnya (misalnya permintaan, respons, sesi).

Cara yang bagus untuk melihat apa yang terjadi adalah dengan menggunakan Tomcat sebagai server Anda dan menelusuri direktori ' work ' untuk file '.java ' yang dihasilkan dari ' jsp ' halaman Anda. Atau di weblogic Anda dapat menggunakan 'weblogic.jspc' kompiler halaman untuk melihat Java yang akan dihasilkan ketika halaman diminta.

Garth Gilmour
Garth Gilmour
Jawaban edit 26 September 2008 в 5:04
9
0
Related communities 1
JavaScript Indonesia
JavaScript Indonesia
14 533 pengguna
Grup JavaScript yang membahas JavaScript, framework JS, dan Node JS secara universal. Cek Pinned Message untuk keterangan lebih lanjut. Komunitas ReactJS: https://t.me/react_idn
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 2 hari yang lalu
2
Akshit Mehta
Terdaftar 4 hari yang lalu
3
me you
Terdaftar 1 minggu yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
KO
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi