首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF 2 ajax示例不起作用

JSF 2 ajax示例不起作用
EN

Stack Overflow用户
提问于 2016-12-24 02:28:49
回答 1查看 184关注 0票数 0

从这个例子开始:https://www.tutorialspoint.com/jsf/jsf_ajax.htm

eclipse不喜欢随其提供的.xhtml文件,我使用的是:

代码语言:javascript
复制
    <!DOCTYPE html>

    <html xmlns="http://www.w3.org/1999/xhtml" 
       xmlns:h="http://java.sun.com/jsf/html" 
       xmlns:ui="http://java.sun.com/jsf/facelets" 
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:composite="http://java.sun.com/jsf/composite">

    <h:head>
      <title>JSF tutorial</title>
   </h:head>
   <h:body>
      <h2>Ajax Example</h2>
          <h:form>
          <h:inputText id="inputName" value="#{userData.name}"></h:inputText>
           <h:commandButton value="Show Message">
             <f:ajax execute="inputName" render="outputMessage" />
          </h:commandButton>
          <h2><h:outputText id="outputMessage"
             value="#{userData.welcomeMessage !=null ?
                userData.welcomeMessage : ''}"
             /></h2>
          </h:form>
       </h:body>
    </html>

显然doctype是不正确的。

当然还有教程中的UserData。在Tomcat9上运行项目时,我可以看到标题和h2标题,但看不到按钮或输入字段。

为什么会这样呢?

我实际上在serverfault上问过这个问题,但因为它在那里被关闭了,所以我在这里重发了它。我希望这没问题。

有人在服务器故障上回答了这个问题,在那之后,我把我的pom.xml改成了这样:

代码语言:javascript
复制
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>ajax-2</groupId>
  <artifactId>ajax-2</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.14</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.14</version>
    </dependency>
  </dependencies>

并且确实在项目目录的命令行上运行了"maven clean install“。

在下载了许多较小的文件后,它会说如果完成了。然而,网页并没有改变,除了标题和一个标题之外,上面什么也没有。

这是我的web.xml:

代码语言:javascript
复制
   <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>ajax-2</display-name>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</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>
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
  </context-param>
  <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>resources.application</param-value>
  </context-param>
  <listener>
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
  </listener>
  <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.jsf</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.faces</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

那么,为了让这个简单的示例运行起来,我错过了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-01-13 05:46:42

我从来没有发现这有什么问题,但对于这篇文章的读者来说,java ee教程中的ajaxguessnumber示例在netbeans中运行得很顺利。

还有本教程:

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html#overview

对于进入jsf2 / websockets来说是很棒的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41306246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档