皆さん、こんにちは。助けてくれてありがとう。私のさびた英語で失礼します :)。spring 3.x 、 spring-security 、および .jsp ページで mvc Web サイトを作成しようとしていました。ここに多くのコードを貼り付けることができますが、URI の方法に関する一種の論理問題であるため、役に立たないと思いますアクションとコントローラーの uri の動作:
1) JSP ページ: login: すべてのゲストが利用可能で、アクション "home" または homeUser を持つ管理者用の
homeAdmin
:
アクションを持つユーザー用「 user/action 」でマッピングされたさまざまなアクション
UserLIst: すべてのユーザーとその情報をテーブルに一覧表示するページ
2)コントローラー:ゲストコントローラー:クラスコントローラーなし、2つの方法しかありません。最初は value={ "/, home"} をマッピングし、後者は "login" をマッピングします。そのため、リクエストを実行しようとする人は全員、ログインできるようにログイン ページにリダイレクトされます。
@Controller
public class LoginController {
@RequestMapping(value={"/home","/"}
(code)//if admin homeAdmin else homeUser
return new ModelAndView("home");
@RequestMapping(value="/login", method = RequestMethod.GET)
(code)
return new ModelAndView("login");
....
Uri アクションの最初の部分をマップするための値 "/admin/" を持つクラスのリクエスト マッピングがあります。また、リスト ユーザーなどの指定されたアクションのリクエスト マッピングにはさまざまなメソッドがあります。管理者コントローラ
@controller
@RequestMapping("/admin")
public class AdminController {
@RequestMapping(value={"/list", "/adminFilm"})
(code)
return new ModelAndView("adminFilm");
...
今、私は管理者としてログインし、私の URL は URL に
"localhost:8080/name_project/homeAdmin.jsp"
対応する URI になりました"/webapp/metainf/views/homeAdmin.jsp"
(メソッド InternalResuorceViewResolver によってその xml ページに生成されます)。
「List User」ボタンを押すと、action="admin/list" が実行されます。現在、私の URI は次のとおりです
"localhost:8080/name_project/admin/listUser.jsp"
。この時点で、私のアクションは「admin/」を生成する必要はありません。 (j_springsecurity_Logout) 上部の URL が から
"localhost:8080/name_project/admin/listUser"
になっ
た "localhost:8080/name_project/admin/j_spring_Logout"
ので、(当然のことながら) マッピングが見つからないというエラーが発生します。
ホームページ リクエストは、AdminController ではなく LoginController によってマップされるため、同じ問題が発生します。そのため、パス「/admin/home」を持つページからリクエストすると、これが見つからず、loginController でコントローラーを呼び出すことができません。jspページのパスを強制することで解決できましたが、プログラミングが不適切です(エラーが発生します)。このパスの問題をどのように解決できますか?
問題が理解できない場合は、書き直します。
ありがとう。