spring-boot - javax.el.PropertyNotFoundException:目标无法访问,标识符 [MyController] 使用 Spring Boot 和 JSF 解析为 null
问题描述
我面临一些对我来说没有意义的问题。尝试在 jsf 页面中使用 selectOneMenu 时,出现“标识符解析为空”。
我确实知道当控制器未解析或字段为空时会发生这种情况,但是:i)如果我删除 selectOneMenu,一切正常(包括绑定到同一控制器属性的其他字段);ii) 我的 selectOneMenu 的字段目标是非空字符串。这是我的代码:
<h:selectOneMenu id="brandAccess" value="#{myController.field}" title="" >
<f:selectItem itemValue="Item1" itemLabel="Item1" />
<f:selectItem itemValue="Item2" itemLabel="Item2" />
<f:selectItem itemValue="Item3" itemLabel="Item3" />
</h:selectOneMenu>
控制器:
@ManagedBean(name = "myController")
@SessionScoped
public class MyController implements Serializable {
private String field; //Makes no difference with new String()
public void setField(String field) { this.field = field; }
public String getField() { return this.field; }
}
编辑:
指示的问题导致两个可能的根源:
1) 控制器为空,不可访问或在 xhtml 文件中定义错误:情况并非如此。如果我删除这个特定组件,其他一切都正常。
2)字段不存在或为空:也不是这种情况。该字段确实存在并且不为空。另外,尝试创建一个新字段,但仍然无法正常工作
更新
对于与 Spring 和 JSF 有相同问题的人:我无法回答,因为问题被标记为重复。我的情况与其他问题的情况有些不同:问题是 Spring 没有创建我的控制器。出于某种原因,例如,错误不会发生h:inputText
,但会发生h:selectOneMenu
. 修复非常简单:只需使用@Controller
(即使这不是 Spring 控制器)注释控制器,然后 Spring 将完成其余的工作。
解决方案
推荐阅读
- redux - 带有 redux-observable 的 API 中间件
- c++ - 检查数组中给定的 K 元素
- leaflet - 自定义 CRS:如何让传单比例控件显示 mm(毫米)和 um(微米)
- javascript - 在调查仪表板中弹出图像
- php - 如何在 BelongsToMany 关联中正确保存数据?
- c++ - 在 C++ 中初始化类数组,为什么 cplusplus.com 代码不起作用?
- javascript - 如何创建带有水平滚动条的选择元素?
- pact-lang - 你如何在 Emacs 上打开 Pact linting?
- c++ - 我可以在视频游戏进入 gpu 之前记录图形数据吗?
- c# - 抛出异常 setcurrentcelladdresscore 改变行