gpt4 book ai didi

java - JSF 按钮未显示

转载 作者:行者123 更新时间:2023-12-02 07:37:25 26 4
gpt4 key购买 nike

我有以下代码,无论我做什么,我的网络浏览器都不会呈现任何提交按钮。

我正在使用 Eclipse 和 Glassfish。

问题还在于,不知怎的,当我快速尝试我的示例时,服务器有时会挂起,浏览器处于等待模式几分钟,没有任何错误或任何东西。

有时它确实会泄露页面,但它工作得很好。

为什么按钮没有显示并且我的服务器如此不稳定?

<h:head><title>JSF 2: Using @ManagedBean</title>
<link href="./css/styles.css"
rel="stylesheet" type="text/css"/>
</h:head>
<h:body>
<div align="center">
<table class="title">
<tr><th>JSF 2: Using @ManagedBean</th></tr>
</table>
<p/>
<fieldset>
<legend>Random Results Page</legend>
<h:form>
Press button to get one of three possible results pages.
<br/>
<h:commandButton value="Go to Random Page" action="#{navigator.choosePage}" />
</h:form>
</fieldset>
</div>




package coreservlets;
import javax.faces.bean.*;

@ManagedBean
@ApplicationScoped
public class Navigator {
private String[] resultPages =
{ "page1", "page2", "page3" };

public String choosePage() {
return(RandomUtils.randomElement(resultPages));
}
}

最佳答案

如果您或者忘记声明h:,就会发生这种情况。 XML 命名空间,导致 <h:xxx>标签无法识别。只需查看 JSF 源代码和生成的 HTML 输出(右键单击 - 在浏览器中查看源代码)即可确认这一点。

<html ... xmlns:h="http://java.sun.com/jsf/html">

或者您在浏览器地址栏中看到的请求 URL 与 <url-pattern> 不匹配FacesServlet的如 web.xml 中映射的,导致<h:xxx>标签未被解析。只需查看请求 URL(web.xml)即可确认这一点。以及生成的 HTML 输出。

<url-pattern>*.xhtml</url-pattern>

或者styles.css中的CSS以某种方式隐藏了它。这可以通过检查 CSS 文件和/或使用浏览器的开发人员工具集和/或检查生成的 HTML 输出来确认。

input[type=submit] {
display: none;
}

另请参阅:

<小时/>

与具体问题无关,针对特定用例使用应用程序范围的 bean 是相当奇怪的。它已在所有 session 中的所有用户之间共享。因此,如果该操作由世界其他地方的 Web 应用程序用户 X 调用,则世界各地的所有其他 Web 应用程序用户都会看到它得到反射(reflect)。您不想使用请求或 View 作用域 bean 吗?

另请参阅:

关于java - JSF 按钮未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11995190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com