Rumah > Java > javaTutorial > Bagaimana untuk Ubah hala ke URL Luaran daripada Tindakan Pengawal Spring MVC?

Bagaimana untuk Ubah hala ke URL Luaran daripada Tindakan Pengawal Spring MVC?

Linda Hamilton
Lepaskan: 2024-11-29 14:47:10
asal
357 orang telah melayarinya

How to Redirect to an External URL from a Spring MVC Controller Action?

Ubah hala ke URL Luaran daripada Tindakan Pengawal dalam Spring MVC

Apabila cuba mengubah hala ke URL luaran daripada tindakan pengawal dalam Spring MVC , adalah penting untuk memahami batasan sintaks "ubah hala:" lalai. Secara lalai, Spring mengubah hala ke URL dalam laluan konteks aplikasi.

Mengubah hala ke URL Dalaman

Seperti yang ditunjukkan dalam coretan kod pertama:

@RequestMapping(method = RequestMethod.POST)
public String processForm(...) {
    String redirectUrl = "yahoo.com";
    return "redirect:" + redirectUrl;
}
Salin selepas log masuk

Kod ini cuba mengubah hala ke URL "yahoo.com" tetapi tidak mempunyai protokol yang sah (cth., http:// atau https://). Akibatnya, Spring mentafsirkannya sebagai URL dalaman dan mengubah hala ke "yahoo.com" dalam laluan konteks aplikasi.

Mengubah hala ke URL Luaran dengan Protokol

Kepada ubah hala ke URL luaran dengan protokol, pendekatan berikut boleh digunakan:

@RequestMapping(method = RequestMethod.POST)
public String processForm(...) {
    String redirectUrl = "http://www.yahoo.com";
    return "redirect:" + redirectUrl;
}
Salin selepas log masuk

Dengan menyatakan protokol dalam URL, Spring dengan betul mengubah hala pengguna ke tapak web luaran.

Mengubah hala ke URL Luaran Tanpa Protokol

Untuk mengubah hala ke URL luaran tanpa protokol menggunakan Spring MVC, dua alternatif wujud:

Kaedah 1:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public void method(HttpServletResponse httpServletResponse) {
    httpServletResponse.setHeader("Location", projectUrl);
    httpServletResponse.setStatus(302);
}
Salin selepas log masuk

Kaedah ini menetapkan pengepala "Lokasi" secara manual dan kod status HTTP yang sesuai (302) dalam respons untuk mencetuskan ubah hala.

Kaedah 2:

@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public ModelAndView method() {
    return new ModelAndView("redirect:" + projectUrl);
}
Salin selepas log masuk

Kaedah ini menggunakan kelas "ModelAndView" untuk mencipta respons ubah hala dengan URL yang ditentukan.

Atas ialah kandungan terperinci Bagaimana untuk Ubah hala ke URL Luaran daripada Tindakan Pengawal Spring MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan