Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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_Facelets - Fatal编程技术网

Jsf 表单提交会导致源代码以普通方式显示,而不是进行解释

Jsf 表单提交会导致源代码以普通方式显示,而不是进行解释,jsf,facelets,Jsf,Facelets,我试图创建一个登录页面,从数据库中检查用户名和密码。 我一单击submit按钮,它就会显示welcome.xhtml文件的代码,而不是显示welcome页面。谁能告诉我如何解决这个问题 在更改login.xhtml以使用facelets之后,我仍然存在同样的问题 login.xhtml: <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html"

我试图创建一个登录页面,从数据库中检查用户名和密码。 我一单击submit按钮,它就会显示welcome.xhtml文件的代码,而不是显示welcome页面。谁能告诉我如何解决这个问题

在更改login.xhtml以使用facelets之后,我仍然存在同样的问题

login.xhtml:

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

    <h:body>

      <h:form>

          <p>
              <h:inputText
                  id="username"
                  title="Username"
                  value="#{userBean.username}">

              <h:inputText
                  id="password"
                  title="Password"
                  value="#{userBean.password}">
              </h:inputText>

              <h:commandButton id="submit" value="Submit" action="#{userBean.validate}"/>
          </p>

      </h:form>
  </h:body>

您是否为.xhtml页面顶部的标记指定了xhtml声明和jsf声明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

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

<h:body>
   your code here....
</h:body>

</html>
在.xhtml登录文件中,使用表单而不是


尝试在faceConfig中指定导航规则

<navigation-rule>
  <display-name>login.xhtml</display-name>
  <from-view-id>/faces/login.xhtml</from-view-id>
  <navigation-case>
   <from-action>#{userBean.validate}</from-action>
   <from-outcome>welcome.xhtml</from-outcome>
   <to-view-id>/faces/welcome.xhtml</to-view-id>
  </navigation-case>
 </navigation-rule>

login.xhtml
/faces/login.xhtml
#{userBean.validate}
welcome.xhtml
/faces/welcome.xhtml
一些参考资料,

您能否详细说明问题并发布一些代码?提交后您看到的代码是什么?JSF源代码还是生成的HTML源代码?请同时显示请求/响应标题。这是服务器的问题。您的服务器不了解如何呈现xhtml页面。可能是这样,它将页面视为纯文本页面,而根本不执行服务器端代码。您确定您使用的是JSF/Facelets吗?您讨论的是JavaEE上下文中的XHTML文件,因此假定使用Facelets。但这种形式根本不是合法的JSF/Facelets形式。您不是把JSF/Facelets与遗留JSP混淆了吗?那个onclick至少毫无意义。你在哪里学会了用这种方式发展它?无论如何,请将鼠标放在问题下方的
[jsf]
[facelets]
标记上方,直到出现一个黑色信息框,然后单击其中的信息链接。感谢您的帮助,我们将学习更多教程。。看起来我混合了JSP和JSF.Ya,我包括了默认的_后缀和facesservlet。已尝试使用/faces/*和*.xhtml。仍然没有显示输入文本字段:用户名和密码,忘记转到托管bean。但还是按照你的建议加了。仍然是中小企业:(如果我使用而不是,它被认为是一个JSP而不是JSF。我最初是因为它不起作用,我发现我把JSP搞得一团糟,所以JSF从改为标记是一个html标记,你可以在JSP或JSF中使用它,如果你使用它最终呈现一个标记,它不是任何类型的JSP标记,它是一个纯html标记,也添加了导航规则,仍然是一样的我正在使用Netbeans 5.5 IDE的版本重要吗?
<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
  </context-param>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>/faces/*</url-pattern>
  </servlet-mapping>
if (response.equals("MATCH"))          
      return "faces/welcome.xhtml";
  else
      return "login.xhtml";
<form>
</form>
<navigation-rule>
  <display-name>login.xhtml</display-name>
  <from-view-id>/faces/login.xhtml</from-view-id>
  <navigation-case>
   <from-action>#{userBean.validate}</from-action>
   <from-outcome>welcome.xhtml</from-outcome>
   <to-view-id>/faces/welcome.xhtml</to-view-id>
  </navigation-case>
 </navigation-rule>