Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从JSF切换到JSP2 EL的奇怪行为_Java_Jsp_Jsf_El_Jsf 1.2 - Fatal编程技术网

Java 从JSF切换到JSP2 EL的奇怪行为

Java 从JSF切换到JSP2 EL的奇怪行为,java,jsp,jsf,el,jsf-1.2,Java,Jsp,Jsf,El,Jsf 1.2,我正在学习JSF,并尝试在EL上实现一个小练习(使用JSF页面和JSP2)。我发现了一种奇怪的行为,完全不知道背后的原因。请在下面找到我的代码和场景 支持bean类 package task2; public class FavortiteColors_1 { private String firstName = "Tarun"; public String getFirstName() { return firstName; } public void

我正在学习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;  
    }  
}
<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>  
下面是此示例所需的faces配置xml的快照 Faces config.xml

package task2;  
public class FavortiteColors_1 {  
private String firstName = "Tarun";  
public String getFirstName() {  
    return firstName;  
    }  
public void setFirstName(String firstName) {  
    this.firstName = firstName;  
    }  
}
<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>  
有了这个背景,下面是我的问题

Q1:我正在尝试使用JSF1EL和JSP2EL从支持bean获取字符串。我正在尝试使用三个表达式获取名称。第一个和第三个是JSP2 EL,有趣的是第一个无法获取第三个的名称(使用完全相同的语法可以获取名称。使用SOP,我得到的结论是第一个表达式无法触发支持bean,而第二个和第三个表达式正在成功地触发支持bean。为什么会发生这种情况?期待您的解释


关于Tarun

您的jsp代码格式不正确。抱歉,我是新到论坛的,所以我不知道提问的协议。jsp没有提供编译问题。只是输出不符合预期。请详细说明“您的jsp代码格式不正确”是什么意思我的意思是,标记没有被正确地关闭,是吗?看看
li
br
标记。除此之外,如果你想进入JSF,我强烈建议你摆脱Scriptlet,使用jstl。Scriptlet是一种古老的技术,应该避免,因为它将纯Java代码注入视图文件(facelets或jsp)不鼓励使用。请看这个JSF(或您的JSF实现)自动创建支持bean,并/或在第一次请求它们时将它们放在请求范围内。这可能是您第一次使用JSF EL时发生的情况。也就是说,这是一个您一开始就不应该真正关心的实现细节。混合使用JSP、JSF和(哦,天哪)同一页面中的Scriptlet可能没有任何有用的指定行为,这主要是因为JSF生命周期相当复杂,JSP执行模型实际上根本不能很好地使用它(这就是我们现在使用Facelet的原因)