当我使用javax.annotation.ManagedBean时,Eclipse不会在EL中自动完成bean方法 [英] Eclipse won't autocomplete bean methods in EL when I use javax.annotation.ManagedBean
本文介绍了当我使用javax.annotation.ManagedBean时,Eclipse不会在EL中自动完成bean方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
faces-config.xml:
<?xml version =1.0 = UTF-8 >?;
< faces-config xmlns =http://java.sun.com/xml/ns/javaee
xmlns:xsi =http://www.w3.org/2001/XMLSchema -instance
xsi:schemaLocation =http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd
version =2.0>
< application>
< el-resolver> org.springframework.web.jsf.el.SpringBeanFacesELResolver< / el-resolver>
< action-listener> org.primefaces.application.DialogActionListener< / action-listener>
< navigation-handler> org.primefaces.application.DialogNavigationHandler< / navigation-handler>
< view-handler> org.primefaces.application.DialogViewHandler< / view-handler>
< / application>
< / faces-config>
applicationContext.xml
<?xml version =1.0encoding =UTF-8?>
< beans xmlns =http://www.springframework.org/schema/beans
xmlns:xsi =http://www.w3.org/2001/XMLSchema-instance
xmlns:tx =http://www.springframework.org/schema/tx
xmlns:context =http://www.springframework.org/schema/context
xsi :schemaLocation =
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/ tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
>
< context:property-placeholder location =classpath:jdbc.properties/>
< tx:annotation-driven transaction-manager =hibernateTransactionManager/>
< context:component-scan base-package =com.tds.erp/>
< context:annotation-config />
< context:spring-configured />
<! - 数据源声明 - >
< bean id =dataSourceclass =org.springframework.jdbc.datasource.DriverManagerDataSource>
< property name =driverClassNamevalue =$ {database.driver}/>
< property name =urlvalue =$ {database.url}/>
< property name =usernamevalue =$ {database.user}/>
< property name =passwordvalue =$ {database.password}/>
< / bean>
<! - 会话工厂声明 - >
< bean id =SessionFactoryclass =org.springframework.orm.hibernate4.LocalSessionFactoryBean>
< property name =dataSourceref =dataSource/>
< property name =packagesToScanvalue =com.tds.erp.model/>
<! - < property name =packagesToScan>
< list>
< value> net.javabeat.spring.model< / value>
< / list>
< / property> - >
< property name =hibernateProperties>
<道具>
< prop key =hibernate.dialect> $ {hibernate.dialect}< / prop>
< prop key =hibernate.show_sql> $ {hibernate.show_sql}< / prop>
< / props>
< / property>
< / bean>
<! - 启用基于注释的事务性行为的配置 - >
<! - < tx:annotation-driven transaction-manager =txManager/> - >
<! - 事务管理器被定义 - >
< bean id =hibernateTransactionManagerclass =org.springframework.orm.hibernate4.HibernateTransactionManager>
< property name =sessionFactoryref =SessionFactory/>
< / bean>
< / beans>
ManagedBean:
package com.tds.erp.managedController;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.tds.erp.model.Employee;
import com.tds.erp.services.IEmployeeService;
@Component
@ManagedBean
@SessionScoped
public class EmployeeMB {
@Autowired
private IEmployeeService EmployeService;
private Employee employee = new Employee();
私人列表<员工> employeeList = new ArrayList< Employee>();
private Employee selectedEmployee = new Employee();
private boolean headerButtonsDisabled = true;
public void setEmployeService(IEmployeeService employeService){
EmployeService = employeService;
}
public IEmployeeService getEmployeService(){
return EmployeService;
}
public Employee getEmployee(){
return employee;
}
public void setEmployee(Employee employee){
this.employee = employee;
}
public List< Employee> getEmployeeList(){
return employeeList;
}
public void setEmployeeList(List< Employee> employeeList){
this.employeeList = employeeList;
}
public Employee getSelectedEmployee(){
return selectedEmployee;
}
public void setSelectedEmployee(Employee selectedEmployee){
this.selectedEmployee = selectedEmployee;
}
public boolean isHeaderButtonsDisabled(){
return headerButtonsDisabled;
}
public void setHeaderButtonsDisabled(boolean headerButtonsDisabled){
this.headerButtonsDisabled = headerButtonsDisabled;
}
}
解决方案
解决问题,问题是我在托管bean中导入错误的注释
导入错误:
import javax.annotation.ManagedBean;
正确导入:
import javax.faces.bean.ManagedBean;
所以结果:
package com.tds.erp.managedController;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.tds.erp.model.Employee;
import com.tds.erp.services.IEmployeeService;
@Component
@ManagedBean
@SessionScoped
public class EmployeeMB {
@Autowired
private IEmployeeService EmployeService;
private Employee employee = new Employee();
私人列表<员工> employeeList = new ArrayList< Employee>();
private Employee selectedEmployee = new Employee();
private boolean headerButtonsDisabled = true;
public void setEmployeService(IEmployeeService employeService){
EmployeService = employeService;
}
public IEmployeeService getEmployeService(){
return EmployeService;
}
...
I created an application using JSF and Spring and I used the annotations @repository, @service @component and @autowired but when I am coding the Facelet file the beans cannot show up, can any one help me
faces-config.xml:
<?xml version="1.0" encoding="utf-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
<action-listener>org.primefaces.application.DialogActionListener</action-listener>
<navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>
<view-handler>org.primefaces.application.DialogViewHandler</view-handler>
</application>
</faces-config>
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"
>
<context:property-placeholder location="classpath:jdbc.properties" />
<tx:annotation-driven transaction-manager="hibernateTransactionManager" />
<context:component-scan base-package="com.tds.erp"/>
<context:annotation-config/>
<context:spring-configured/>
<!-- Data Source Declaration -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${database.driver}" />
<property name="url" value="${database.url}" />
<property name="username" value="${database.user}" />
<property name="password" value="${database.password}" />
</bean>
<!-- Session Factory Declaration -->
<bean id="SessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.tds.erp.model" />
<!-- <property name="packagesToScan">
<list>
<value>net.javabeat.spring.model</value>
</list>
</property>-->
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
</props>
</property>
</bean>
<!-- Enable the configuration of transactional behavior based on annotations -->
<!-- <tx:annotation-driven transaction-manager="txManager"/>-->
<!-- Transaction Manager is defined -->
<bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="SessionFactory"/>
</bean>
</beans>
the ManagedBean :
package com.tds.erp.managedController;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.tds.erp.model.Employee;
import com.tds.erp.services.IEmployeeService;
@Component
@ManagedBean
@SessionScoped
public class EmployeeMB {
@Autowired
private IEmployeeService EmployeService;
private Employee employee= new Employee();
private List<Employee> employeeList= new ArrayList<Employee>();
private Employee selectedEmployee=new Employee();
private boolean headerButtonsDisabled=true;
public void setEmployeService(IEmployeeService employeService) {
EmployeService = employeService;
}
public IEmployeeService getEmployeService() {
return EmployeService;
}
public Employee getEmployee() {
return employee;
}
public void setEmployee(Employee employee) {
this.employee = employee;
}
public List<Employee> getEmployeeList() {
return employeeList;
}
public void setEmployeeList(List<Employee> employeeList) {
this.employeeList = employeeList;
}
public Employee getSelectedEmployee() {
return selectedEmployee;
}
public void setSelectedEmployee(Employee selectedEmployee) {
this.selectedEmployee = selectedEmployee;
}
public boolean isHeaderButtonsDisabled() {
return headerButtonsDisabled;
}
public void setHeaderButtonsDisabled(boolean headerButtonsDisabled) {
this.headerButtonsDisabled = headerButtonsDisabled;
}
}
解决方案
I solve the problem, and the problem is that I imported a wrong annotation in the managed bean the wrong import:
import javax.annotation.ManagedBean;
the right import:
import javax.faces.bean.ManagedBean;
so the result :
package com.tds.erp.managedController;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.tds.erp.model.Employee;
import com.tds.erp.services.IEmployeeService;
@Component
@ManagedBean
@SessionScoped
public class EmployeeMB {
@Autowired
private IEmployeeService EmployeService;
private Employee employee= new Employee();
private List<Employee> employeeList= new ArrayList<Employee>();
private Employee selectedEmployee=new Employee();
private boolean headerButtonsDisabled=true;
public void setEmployeService(IEmployeeService employeService) {
EmployeService = employeService;
}
public IEmployeeService getEmployeService() {
return EmployeService;
}
...
这篇关于当我使用javax.annotation.ManagedBean时,Eclipse不会在EL中自动完成bean方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文