我正在学习JSF,并且正在尝试在EL上实现一个小练习(使用JSF页面和JSP2)。我发现了一种奇怪的行为,完全不知道它背后的原因。请在下面找到我的代码和方案
支持bean类
package task2;
public class FavortiteColors_1 {
private String firstName = "Tarun";
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
}
以下是此示例所需的faces config xml的快照 面对config.xml
<managed-bean>
<managed-bean-name>favColors_1</managed-bean-name>
<managed-bean-class>task2.FavortiteColors_1</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
JSP代码
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>Accessing Bean Properties</TITLE>
<LINK REL="STYLESHEET"
HREF="./css/styles.css"
TYPE="text/css">
</HEAD>
<BODY>
<tr><B>Accessing Bean Properties using JSP 2 EL: version 1<B></tr>
<% System.out.println("Accessing Bean Properties using JSP 2 EL: version 1"); %>
<OL>
<LI>First Name ${favColors.firstName}
</OL>
<BR><BR>
<tr><B>Accessing Bean Properties using JSF 1.1 EL <B></tr>
<% System.out.println("Accessing Bean Properties using JSF 1.1 EL"); %>
<UL>
<LI>First Name = <h:outputText
value="#{favColors.firstName}"/>
</UL>
<BR><BR>
<tr><B>Accessing Bean Properties using JSF 1.1 with JSP2EL: version 2<B></tr>
<% System.out.println("Accessing Bean Properties using JSF 1.1 with JSP2EL: version 2"); %>
<OL>
<LI>First Name ${favColors.firstName}
</OL>
<BR><BR><BR>
<P>
</f:view>
* 输出如下:*
Accessing Bean Properties using JSP 2 EL: version 1
First Name
Accessing Bean Properties using JSF 1.1 EL
First Name = Tarun
Accessing Bean Properties using JSF 1.1 with JSP2EL: version 2
First Name Tarun
有了这个,下面的背景是我的问题
Q1:我正在尝试使用JSF 1 El和JSP 2 EL从支持bean中获取字符串。我试图使用三个表达式获取名称。第一个和第三个是JSP2 EL,有趣的是第一个不能获取名称,因为第三个(具有完全相同的语法能够获取名称。使用SOP,我得到的那个第一个表达式无法触发支持bean,而第二个和第三个表达式正在成功执行。为什么会出现这种情况?期待您的解释。
关心塔伦