java - 带有 VarArgs 的方法首先从 JSP 调用
问题描述
我有带有重载方法的用户类:
public boolean checkAccessAvoid(Role... groups) {
...
}
public boolean checkAccessAvoid(String string) {
...
}
控制器:
@RequestMapping(method = RequestMethod.GET, value = "list")
public ModelAndView list(...) {
ModelAndView mav = new ModelAndView();
mav.addObject("user", Session.getUser());
mav.addObject("notAllowedToAddGameUsers", AccessUtils.GroupArrayToString(Permission.MAIN_GAME_NOT_ALLOWED_TO_ADD_GAME));
mav.setViewName("home");
return mav;
}
- 在 notAllowedToAddGameUsers 对象中,我有一个字符串,其中列出了所有用户角色。就我而言,它看起来像:
'-Guest-GameDeveloper-GameQA-TechnicalWriter'
主页.jsp:
<c:set var="test" value="${user.checkAccessAvoid(notAllowedToAddGameUsers)}" />
<% System.out.println( "result = " + pageContext.findAttribute("test") ); %>
问题是当我尝试获取我的列表时遇到错误:
SEVERE: Servlet.service() for servlet [appServlet] in context with path [] threw exception [An exception occurred processing JSP page /WEB-INF/views/home.jsp at line 26
26: <c:set var="test" value="${user.checkAccessAvoid(notAllowedToAddGameUsers)}" />
27: <% System.out.println( "result = " + pageContext.findAttribute("test") ); %>
javax.el.ELException: Cannot convert '-Guest-GameDeveloper-GameQA-TechnicalWriter' of type class java.lang.String to class com.domain.enums.Role
我尝试将 varargs 参数更改为数组并且它有效,但是有很多地方使用 Role 类型参数调用方法。所以我想了解为什么会发生这个错误。
解决方案
推荐阅读
- java - Spring MVC 如何从 Model 获取数据以及为什么每次提交表单后都会创建 modelAttribute 对象?
- opentok - 如何在连接到 opentok 会话时向用户添加自定义唯一标识符?
- python - 使用 groupby 绘制 pandas 数据框 - TypeError:没有要绘制的数字数据
- java - 在 Java Spring boot 项目中存储通用字符串(属性文件/常量类)的最佳方法是什么?
- reactjs - React dom outerHTML 似乎不对?
- java - Ambari 2.7.5 在 CentOS 7 上安装失败
- android - Random document that doesnt exist in firestore gets selected on android and deleted
- java - 一些 api 调用在 Android 9 上失败
- javascript - 异步箭头函数的 onclick 语法是否仅适用于 Id?
- postgresql - postgresql 并发事务