我正在尝试让Spring Boot与JSF一起工作。FacesServlet被初始化,网站用PrimeFaces正确呈现。但是在我调用JSF或Spring-Bean时,没有显示任何内容。
我知道这个问题被问了很多次,但都没有解决我的问题。经过几个小时的搜索,我还是没有找到工作。我是不是漏掉了什么?
设置:
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public FacesServlet facesServlet() {
return new FacesServlet();
}
@Bean
public ServletRegistrationBean facesServletRegistration() {
ServletRegistrationBean registration = new ServletRegistrationBean(facesServlet(), new String[] { "*.xhtml" });
registration.setName("FacesServlet");
registration.setLoadOnStartup(1);
return registration;
}
@Configuration
static class ConfigureJSFContextParameters implements ServletContextInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setInitParameter("com.sun.faces.forceLoadConfiguration", "true");
servletContext.setInitParameter("javax.faces.DEFAULT_SUFFIX", ".xhtml");
servletContext.setInitParameter("encoding", "UTF-8");
}
}
@Bean
public ServletListenerRegistrationBean<ConfigureListener> jsfConfigureListener() {
return new ServletListenerRegistrationBean<ConfigureListener>(new ConfigureListener());
}
}
jsfbean.java
@ManagedBean
public class JsfBean {
private String welcomeMessage = "Populated by JSF created bean";
public String getWelcomeMessage() {
return welcomeMessage;
}
}
SpringBean.java
@Component
public class SpringBean {
private String welcomeMessage = "Populated by spring created bean";
public String getWelcomeMessage() {
return welcomeMessage;
}
}
index.xhtml
<!DOCTYPE html>
<f:view 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"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui" encoding="UTF-8">
<html>
<h:head>
</h:head>
<h:body>
<h1>Rechnung</h1>
<h3>#{springBean.welcomeMessage}</h3>
<h3>#{jsfBean.welcomeMessage}</h3>
</h:body>
</html>
</f:view>
输出
<h1>Rechnung</h1>
<h3></h3>
<h3></h3>
我真的让它起作用了。在链接的教程中,我忽略了必须将faces-config.xml
放在resources-文件夹src/main/resources/meta-inf/
中,而不是src/main/webapp/meta-inf/
。
这导致了从未使用el-resolver的问题,这也解释了为什么#{springbean.welcomeMessage}
没有显示任何内容。
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
<lifecycle>
<phase-listener>org.springframework.web.jsf.DelegatingPhaseListenerMulticaster</phase-listener>
</lifecycle>
如何使会话中的特定bean无效? 我有这个示例代码。我使用外部上下文进行测试。失效会话();但它会销毁应用程序中会话中的所有bean,因为它会销毁整个会话。 但是,使用invalidateSession,会话中的所有bean都将被销毁,我只想使一个特定的“托管”bean失效,我如何做到这一点?
我正在使用创建React应用程序,并尝试使用提供的组件。 我遇到的问题似乎涉及导入名为
问题内容: 我需要通过带有SSL的spring-ldap与LDAP服务器进行通信,并且另一端拥有一个自签名证书。 有什么好心请给我一些指导来进行设置吗? 问题答案: 查看Spring LDAP文档以通过HTTP(S)连接到LDAP服务器: 就自签名证书而言,您可以将证书链导入信任库并设置以下VM参数: 或在运行时覆盖信任库,例如: 请记住,这两个选项都将覆盖默认的JVM信任库。因此,如果您使用不同
我正在做一个简单的天气应用程序,我有一个问题,通过AsyncTask读取变量。我是andorid编程的初学者,所以我要求理解。因此,我想将变量“latitude”和“longitude”从place picker中选择到asynctask.execute(“latitude”,“longitude”)中,并刷新屏幕以显示新位置的天气。但我注意到,当我在代码中不是通过变量(例如asynctask.e
TLDR;JDBI 注释使用自动生成的类型生成 ,因为生成的类型是包私有的,默认情况下无法使用反射进行访问。 JDBI是不灵活的还是有通过AutoValue的解决方法?(以下是完整的问题) 快速背景 我正在尝试使用JDBI 注释,其类型的源代码是使用AutoValue生成的。 问题是生成的代码看起来像: 请注意,类是包私有的! 现在,如果我尝试使用< code>@BindBean,例如: 因为是包
我有一个字符类型的@XMLElement,但当它被封送时,它似乎被放入一个二进制字符串中,例如。。。 除了将它们转换为字符串之外,还有没有一种方法可以输出文本char而不是表示?