Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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
一个简单的JSF执行_Jsf - Fatal编程技术网

一个简单的JSF执行

一个简单的JSF执行,jsf,Jsf,下面粘贴的代码是一个简单的JSF程序,其思想是有一个命令按钮(在JSP中是一个JSF组件),当单击该按钮时,应该会显示在托管bean中编写的消息,然后返回并在JSP中显示该消息 **perfectJSP.jsp** <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="f" uri="http://

下面粘贴的代码是一个简单的JSF程序,其思想是有一个命令按钮(在JSP中是一个JSF组件),当单击该按钮时,应该会显示在托管bean中编写的消息,然后返回并在JSP中显示该消息

**perfectJSP.jsp**

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Test Page</title>
</head>
<body>
<f:view>
<h:form>
  <h:commandButton value="Click" actionListener="#{Test.clicked}"></h:commandButton>
</h:form>
</f:view>
<h3> This brings us to the end of the program </h3>
</body>
</html>

**Test**  (managed bean)
import javax.faces.event.*;
public class Test {
public void clicked(ActionEvent ae)
{
    System.out.println("This is from the bean class");
}
}

**web.xml**

<servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>
        javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>faces</servlet-name>
        <servlet-class>
        org.apache.myfaces.webapp.MyFacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>faces</servlet-name>
        <url-pattern>*.jsf</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>faces</servlet-name>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>

**faces-config.xml**


<faces-config>
<managed-bean>
<managed-bean-name>Test</managed-bean-name>
<managed-bean-class>Test</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
</faces-config>
**perfectJSP.jsp**
测试页
这就到了节目的结尾
**测试**(托管bean)
导入javax.faces.event.*;
公开课考试{
点击公共作废(ActionEvent ae)
{
System.out.println(“这来自bean类”);
}
}
**web.xml**
Facesservlet
javax.faces.webapp.FacesServlet
1.
面孔
org.apache.myfaces.webapp.MyFacesServlet
1.
Facesservlet
/面孔/*
面孔
*.jsf
面孔
*.面孔
**faces-config.xml**
试验
试验
要求

JBoss是使用的应用服务器。无法理解为什么不生成输出。

您正在将消息打印到标准输出,而标准输出通常会出现在服务器日志中。这不会在HTML响应中结束,而HTML响应是客户端应该检索的

如果您想在JSF表单提交时显示一些消息,有几种方法:

  • FacesContext#addMessage()
    一起使用。例如

    <h:form>
        <h:commandButton value="Click" action="#{Test.clicked}" />
        <h:messages />
    </h:form>
    
  • 只要消息可用,就有条件地呈现组件。例如

    <h:form>
        <h:commandButton value="Click" action="#{Test.clicked}" />
        <h:outputText value="#{Test.message}" rendered="#{not empty Test.message}" />
    </h:form>
    
此外,托管bean类不在包中。这是绝对不推荐的。其他Java类应该可以访问的Java类必须放在包中



与具体问题无关:您使用的是JSP,自JSF2.0差不多2.5年前以来,JSP一直被认为是不受欢迎的。JSP已经被Facelets所取代。确保您正在阅读最新的JSF书籍/教程。另请参见。

您正在将消息打印到标准输出,而标准输出通常会出现在服务器日志中。这不会在HTML响应中结束,而HTML响应是客户端应该检索的

如果您想在JSF表单提交时显示一些消息,有几种方法:

  • FacesContext#addMessage()
    一起使用。例如

    <h:form>
        <h:commandButton value="Click" action="#{Test.clicked}" />
        <h:messages />
    </h:form>
    
  • 只要消息可用,就有条件地呈现组件。例如

    <h:form>
        <h:commandButton value="Click" action="#{Test.clicked}" />
        <h:outputText value="#{Test.message}" rendered="#{not empty Test.message}" />
    </h:form>
    
此外,托管bean类不在包中。这是绝对不推荐的。其他Java类应该可以访问的Java类必须放在包中


与具体问题无关:您使用的是JSP,自JSF2.0差不多2.5年前以来,JSP一直被认为是不受欢迎的。JSP已经被Facelets所取代。确保您正在阅读最新的JSF书籍/教程。另见