Spring security 当我使用Spring Security和Javafx时,与@FXML连接的属性anotatted为null
我正在开发一个启用了Spring安全性的Javafx应用程序。然后,我创建了一个fxml表单,它有一个id等于txtField的textField。后来我用@Secured anotation添加了一个方法,但是当我尝试将文本设置为textField时,我得到了一个NullPointerException 控制器类如下所示:Spring security 当我使用Spring Security和Javafx时,与@FXML连接的属性anotatted为null,spring-security,nullpointerexception,javafx,fxml,Spring Security,Nullpointerexception,Javafx,Fxml,我正在开发一个启用了Spring安全性的Javafx应用程序。然后,我创建了一个fxml表单,它有一个id等于txtField的textField。后来我用@Secured anotation添加了一个方法,但是当我尝试将文本设置为textField时,我得到了一个NullPointerException 控制器类如下所示: @Controller public class ControladorInicio { @FXML private R
@Controller
public class ControladorInicio {
@FXML
private ResourceBundle resources;
@FXML
private URL location;
@FXML
public TextField textField;
@FXML
@Secured("ROLE_OFERTA_ADMIN")
public void onButton3(ActionEvent event) {
System.out.println("has permission");
}
@FXML
public void initialize() {
textField.setText("This is a text"); //I get a null pointer exception here
}
}
当我使用@Secured时,我怀疑javafx没有向控制器注入属性字段。但是,当我评论@Secured anotation时,一切都很好 如果在FXML上,您的textfield id等于txtField,当您想要使用它时,您不需要写入
@FXML
private TextField txtField;
使用与fxml id相同的名称。否则它将不起作用。该方法需要正确的签名
@FXML
public void initialize(javafx.event.ActionEvent evt) {
textField.setText("This is a text"); //I get a null pointer exception here
}
在fxml中,确保设置了字段“fx:id”。字段“id”似乎是CSS id。您是否尝试将字段公开?FXMLLoader必须通过反射使内容可访问,也许这就是失败的原因?很抱歉,这必须与aop自调用问题有关。这不是JavaFX错误。最近很抱歉,但当我提出这个问题时,我不知道这个错误。不,这不是问题所在
initialize()
是FXML控制器初始化逻辑的正确签名,FXMLLoader将检测该方法,并在加载FXML文件时在控制器上调用该方法。ActionEvent参数对于动作事件处理程序是必需的,但这与textField本身是否正确注入控制器无关,这正是问题所在。