我们的想法是读取一个String并验证它是否包含任何数字字符.所以像"smith23"这样的东西是不可接受的.
查看此代码,它们显示了一种在登录后显示新窗口的方法.当用户名和密码正确时,它会打开新对话框.我想要一个按钮单击打开新对话框,而不检查用户名和密码.
所以我找到了一些接近这个的答案,我发现足以解决我遇到的问题.但即使这样,我也很好奇了解这方面的运作方式.让我用一个例子来说明:
我有一个.xhtml
看起来像这样(缩短)的facelet 页面.
<h:form id="resultForm">
<h:panelGroup class="search_form" layout="block">
<h:inputText id="lastname" value="#{search.lastname}"/>
<h:commandButton action="#{search.find}" value="Find">
<f:ajax execute="lastname" render="resultDisplay"/>
</h:commandButton>
</h:panelGroup>
<h:dataTable value="#{search.searchResults}" var="results" id="resultDisplay"
rendered="#{!empty search.searchResults}">
<h:column>
#{results.field}
</h:column>
</h:dataTable>
</h:form>
Run Code Online (Sandbox Code Playgroud)
现在,为了突破性,我不会发布所有的支持bean代码,但我有这样的东西:
public void find() {
searchResults = setResults(true);
}
Run Code Online (Sandbox Code Playgroud)
哪里searchResults
是ArrayList<Objects>
.在搜索之后,它不是null - 在多个测试中检查(可以为null,但不在我正在进行的测试中).
现在.这不起作用.
但是,如果我将dataTable
内部嵌套在另一个内部panelGroup
,那么它会起作用.
<h:panelGroup id="resultDisplay">
<h:dataTable value="#{search.searchResults}" var="results"
rendered="#{!empty search.searchResults}">
<h:column>
#{results.field}
</h:column>
</h:dataTable>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)
现在,这种变化可以让一切正常.我对此感到满意......但我想我也在寻求一些理解.有关为什么我必须嵌套这些组件的任何见解?我肯定错过了一些东西!
我有一个JSF2应用程序运行和工作没有问题.我与JSF的问题在于资源包.所有资源都.xhtml
附加了后缀.因此main.css
成为main.css.xhtml
在浏览器中加载时.我想拥有它所以.xhtml
不会依赖资源(不要介意页面本身).
是否有一个地方,我们可以一个方式不具有.xhtml
附加的资源呢?
理想情况下,我不必改变网站的内部运作.我在下面列出了一些想法,但我不得不说我不喜欢这些.希望在某个地方找到解决方案?
我在Glassfish 3.1.2.2上使用Majorra v.2.1.17.
<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>*.xhtml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/javax.faces.resource/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
<link type="text/css" rel="stylesheet" href="/javax.faces.resource/main03.css.xhtml?ln=styles">
成为:<link type="text/css" rel="stylesheet" href="/javax.faces.resource/main03.css?ln=styles">
WITHOUT的.xhtml
扩展.当然你可能会问我为什么需要这个.好吧,我们正在推动我们的应用程序由Akamai CDN提供服务.
我们对网站集成的问题是我们正在尝试在边缘服务器上缓存静态内容.这是通过匹配文件扩展名(即:.js,.doc,.png,css等)来完成的.我们无法匹配,xhtml
因为这将缓存所有页面以及静态内容.这会导致会话等问题.
根据BalusC的回答,我按照建议实现了资源处理程序.我不会在这里重写代码,因为它在下面回答.
但是,我在加载复合组件时遇到错误.我这样得到一个错误:
WARNING: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:975) …
Run Code Online (Sandbox Code Playgroud) 使用类似的东西时
<h:panelGrid columns="1">
<ui:repeat var="o" value="#{mybean.list}">
<h:outputText value="#{o.text}"/>
</ui:repeat>
</h:panelGrid>
Run Code Online (Sandbox Code Playgroud)
让我们说10个列表条目我只得到1行例如:一个tr与1 td而当我使用c:forEach我得到10(但是c:forEach实际上是邪恶的,它用ajax弄乱了一切)
我使用mojarra 1.2 - 这是一个典型的Mojarra bug,它在MyFaces实现中不存在吗?它会在Mojarra版本的2.x中消失吗?
我喜欢旧的Java小程序.但是因为我非常喜欢JFX的工作方式,我想用它来写一些游戏(甚至是游戏制作系统,谁知道?),但我希望能够在我的网站上发布它们.怎么会这样做呢?
我写了这个SQL查询来搜索表:
SELECT * FROM TableName WHERE Name LIKE '%spa%'
Run Code Online (Sandbox Code Playgroud)
该表包含这些行,例如:
我想知道如何编辑此查询,以便返回如下排序结果:
2个温泉度假村
3间Spa酒店
1空间公司
4备件
表示首先包含确切单词然后包含相同单词的项目.
我想用MapReduce实现快速傅里叶变换算法.我知道一个递归FFT算法,但我需要你的指南,以便使用Map/Reduce方法实现它.
有什么建议/参考吗?
我看了很多,找不到解决方案.
我正在添加一个分隔符SceneBuilder
.这很简单.现在我希望这个分隔符成为solid
一行.
这我有问题.我试过了 :
-fx-border-style: solid;
-fx-border-width: 1px;
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用或任何组合.
我正在为之工作的组织目前正在Glassfish 3.1.2.2上运行一个应用程序,该应用程序位于硬件(与软件/云相同的问题)负载平衡器后面,该负载均衡器也负责SSL终止.我们目前遇到的问题是Glassfish不知道它是SSL连接背后的,因此不正确地生成某些东西.具体如下:
http://
而不是https://
request.isSecure()
没有返回正确的值request.getScheme()
没有返回正确的值从理论上讲,我们可以在负载均衡器中重写所有这些内容,但是在之前的项目中使用Tomcat并且能够在容器级别解决所有这些问题.
在Tomcat中,我可以在HTTP连接器定义上设置安全标志和方案值,一切都很好.但我似乎无法找到Glassfish的等价物.
任何人有任何想法?