Spring JSF如何与视图连接。?
我需要帮助,了解JSF与Java类文件的连接方式。 在我目前参与的项目中,它使用类对象将JSF与Java类连接起来。 但是我不知道对象初始化在哪里。 在Struts中,我们通过Struts.xml将JSP与action连接起来。但是在这里我没有看到任何映射,它只是使用Spring JSF如何与视图连接。?,spring,hibernate,jsf,primefaces,Spring,Hibernate,Jsf,Primefaces,我需要帮助,了解JSF与Java类文件的连接方式。 在我目前参与的项目中,它使用类对象将JSF与Java类连接起来。 但是我不知道对象初始化在哪里。 在Struts中,我们通过Struts.xml将JSP与action连接起来。但是在这里我没有看到任何映射,它只是使用 #{classNameObject.methodName} 这里的classNameObject是一个对象而不是类名 我的问题是这个#{classNameObject.methodName}如何准确地连接到CLASSNAME 下
#{classNameObject.methodName}
这里的classNameObject
是一个对象而不是类名
我的问题是这个#{classNameObject.methodName}
如何准确地连接到CLASSNAME
下面是代码示例
<p:dataTable id="dataTable" value="#{employeeList.empVarList}"
var="employee" emptyMessage="No Employees found" rows="15"
paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="10,15,20" rowIndexVar="rowIndex"
dynamic="false" cache="false" lazy="false"
style="display:block;overflow-y:none;overflow-x:auto;">
除冬眠外,我只经历了一周以上的一切。请帮我拿你所有的东西。提前谢谢 JSF使用所谓的EL访问托管bean。这就是您在问题中提到的
#{classNameObject.methodName}
,是在呈现页面之前计算的表达式
此外,您可以定义一组可供访问的bean,您可以使用注释()或在您的faces上下文xml文件中定义它们,框架将在应用程序启动时读取它们。使用xml文件比注释更过时,注释实际上更流行。当应用程序通过反射启动时,框架将扫描项目的所有相关注释
对于bean名称,您可以自己选择它们,或者,如果您没有指定它们,JSF将使用其首字母小写来分配它们的类名。这样你就可以从EL中引用它们
您还可以为bean定义一个作用域,用于定义其生存期。您可以为整个应用程序、每个用户会话、具体视图或每个请求提供一个bean。另外,不同的bean能够从范围更广的bean或同一范围内的bean访问信息。看看巴卢斯的作品
关于最后一点,如果您能够在客户端看到数据,则属性必须具有某些值。通常在视图呈现之前初始化和填充属性,您可以在@PostConstruct
方法或(您也可以在bean的构造函数方法中执行,但这并不常见,因为DAO访问方法通常可以抛出异常
)。另外,要从EL访问的每个属性都必须有其getter方法
记住使用getter读取已经加载的属性,在这种情况下,需要省略get/is
word:
@ManagedBean
@ViewScoped
public Class PersonBean{
Person person;
public void postConstruct(){
person = loadPerson();
}
public Person getPerson(){
return person;
}
public void changeName(String newName){
person.setName(newName);
}
}
访问它:
<h:outputText value="#{personBean.person.name}" />
并在加载后对其进行修改:
<h:commandButton value="Person name changer"
action="#{personBean.changeName('Ben')}" />
它使用注释和反射来实现这一点。JSF教程(现在提供的答案中)对此进行了介绍。
<h:commandButton value="Person name changer"
action="#{personBean.changeName('Ben')}" />