基本的には、コントローラと2つの異なるアカウントタイプがあります。ユーザーのタイプに応じてビューを「adminDashboard.jsp」または「userDashboard.jsp」として表示し、これらのビューのそれぞれに「user」というモデル属性を渡しますが、異なるクラスを持つ別のオブジェクトがビューが表示されます。現在のところ、スイッチケースに埋め込まれていても、私のコードは、「アクティブ化」されたスイッチに属しているものではなく、最初に起こるものだけを読み込みます。同じ名前の異なる2つのモデル属性は、それぞれ異なるビューに渡されますが、同じコントローラ内にあります
にHomeController:
@Controller
@RequestMapping(value = "/dashboard")
public ModelAndView showDashboard(String userGroup) {
switch(userGroup) {
case "admin": {
ModelAndView("adminDashboard", "user", adminObject);
}
case "user": {
ModelAndView("userDashboard", "user", userObject);
}
}
}
adminDashboard.jsp
<html>
<head>
...
</head>
<body>
${user.adminId} <!-- reads this correctly -->
${user.userId} <!-- does not read this, which is good. -->
</body>
</html>
userDashboard.jsp
<html>
<head>
...
</head>
<body>
${user.adminId} <!-- reads this, which it should not -->
${user.userId} <!-- does not read this, but it should -->
</body>
</html>
adminユーザーモデル属性がまだでも、渡されている理由を誰かが私に説明することができます技術的にはコードはそのスイッチのケースに入ってはいけません。私も何をしようとしていますか?もしそうなら、例は何でしょうか?
スイッチケースはissues.Itが '含ま壊れません持っているとし;'あなたをif elseブロックで同じロジックを試すことができます。 –
あなたが示唆したように私は試しましたが、userDashboardビューを返しても、$ {user} ELタグを使用するときにadminユーザーモデル属性が使用されます。モデル属性は、他のビューに関連付けられたModelAndViewオブジェクトでのみ宣言されるため、非常に困惑します。 –