dan*_*nte 1 java spring jsp spring-mvc
我正在尝试为访客和用户执行某些操作,并且我做了一些事情,但它不起作用,标题中出现错误.
/ home和/ logged/home使用相同的jsp
我希望为了"注册"而不会为已登录的用户显示"登录"
MainController:
@Controller
public class MainController {
DBConnection db = new DBConnection();
@RequestMapping(value = "/home.html", method = RequestMethod.GET)
public ModelAndView HomePage(@RequestParam boolean guest) {
User user = new User();
user.setGuest(guest);
user.isGuest();
ModelAndView main = new ModelAndView("Main");
return main;
}
@RequestMapping(value = "/logged/home.html", method = RequestMethod.GET)
public ModelAndView homePageforUsers(@RequestParam boolean loggeduser) {
User user = new User();
user.setUser(loggeduser);
user.isUser();
ModelAndView main = new ModelAndView("Main");
return main;
}
Run Code Online (Sandbox Code Playgroud)
main.jsp中:
<c:if test="${user.isUser()}">
<div class="cart">
<a href="http://localhost:8080/OnlineShop/cart.html"
style="text-decoration: none; color: #000"> Cart </a>
<div class="logout">
<a href="http://localhost:8080/OnlineShop/home.html"
style="text-decoration: none; color: #000"> Log out </a>
</div>
</div>
</c:if>
<c:if test ="${user.isGuest()}">
<div class="register">
<a href="http://localhost:8080/OnlineShop/registration.html"
style="text-decoration: none; color: #000"> Register </a>
</div>
<div class="login">
<a href="http://localhost:8080/OnlineShop/login.html"
style="text-decoration: none; color: #000"> Log in </a>
</div>
</c:if>
Run Code Online (Sandbox Code Playgroud)
<a href="http://localhost:8080/OnlineShop/home.html"
Run Code Online (Sandbox Code Playgroud)
此部分触发对您的HomePage控制器的调用,并且其中没有guest可用的查询参数,因此Spring MVC抱怨缺少该必需参数.
默认情况下,带注释的参数RequestParam是必需的.所以,你要么让它们成为可选的,例如:
@RequestParam(required=false) boolean guest
Run Code Online (Sandbox Code Playgroud)
或为他们提供一些合理的默认值,如下所示:
@RequestParam(defaultValue="false") boolean guest
Run Code Online (Sandbox Code Playgroud)
如果您不能使用建议的解决方案,请在每个请求中提供这些必需参数,在您的情况下,如下所示:
<a href="http://localhost:8080/OnlineShop/home.html?guest=false"
style="text-decoration: none; color: #000"> Log out </a>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |