Apakah ada cara saya dapat menggunakan awalan sebagai parameter atau di jalur maju seperti:
<forward name="test" path="/switch.do&page='/test.do'&prefix='/test'"/>
Apakah ada cara saya dapat menggunakan awalan sebagai parameter atau di jalur maju seperti:
<forward name="test" path="/switch.do&page='/test.do'&prefix='/test'"/>
Saya tidak yakin apa yang dimaksud dengan prefix
, saya berasumsi Anda mengacu pada nama servlet. Misalkan Anda memiliki maju ini di struts-config.xml
Anda sebagai bagian dari pemetaan action
:
<forward name="test" path="/switch" />
Jika Anda ingin nama penerus' tersedia untuk tindakan Anda, Anda bisa mendapatkannya dengan mapping.findForwards()
.
Jika Anda sudah memiliki forward
, misalnya:
ActionForward forward = mapping.findForward("test");
Anda bisa mendapatkan nama penyerang dengan:
String fwdName = forward.getName(); // returns "test"
dan nama atau jalur servlet dengan:
String servletPath = forward.getPath(); // returns "/switch.do"
Anda juga bisa mendapatkannya dari objek request
:
String servletPath = request.getServletPath();
Oke, sekarang, jika Anda ingin memodifikasi penerusan sebelum mengembalikan kontrol ke Struts, sehingga Anda dapat menambahkan parameter tambahan, Anda harus membuat ActionForward
baru berdasarkan salah satu penerus yang ditentukan di struts-config.xml
Anda, seperti misalnya:
ActionForward forward = mapping.findForward("test");
StringBuilder path = new StringBuilder(forward.getPath());
path.append("?id=");
path.append(someobject.getId());
return new ActionForward(path.toString(), true); // `true` means "do a redirect"
Ini akan memberitahu Struts untuk mengeluarkan pengalihan ke URL seperti /switch.do?id=3
Mengetahui cara membuat ActionForward
baru, dan cara mendapatkan nama forward dan nama servlet yang ditunjuknya, Anda tidak akan mengalami masalah dalam membuat forward yang Anda perlukan.