- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 JSF 及其同事的新手。
我的开发环境如下
java 6
Tomcat 6
eclipse
Primeface 2.5
我正在尝试使用 Instant primefaces starter 中描述的测试 Web 应用程序。
网页.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>PrimeFaces Web Application</display-name>
<!-- Change to "Production" when you are ready to deploy -->
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<!-- Welcome page -->
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
<!-- JSF mapping -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- Map these files with JSF -->
<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>*.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>
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd"
version="2.1">
<!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:p="http://primefaces.org/ui">
<h:head />
<body>
<ui:composition template="/WEB-INF/templates/main.xhtml">
<ui:define name="title">Welcome to our site</ui:define>
<ui:define name="content">
<h:form>
<h:panelGrid columns="2" border="0">
<p:panel header="Please Sign In">
<p:panelGrid columns="2" styleClass="no-border"
columnClasses="no-border,no-border">
<p:outputLabel value="Username" for="username" />
<p:inputText id="username" label="Username"
value="#{credentials.username}" />
<p:outputLabel value="Password" for="password" />
<p:password id="password" label="Password"
value="#{credentials.password}" />
<h:outputText value="" />
<p:commandLink value="Forgot your password?" />
<h:outputText value="" />
<p:commandButton value="Login" action="members"
actionListener="#{loginController.login}" />
<h:outputText value="" />
</p:panelGrid>
</p:panel>
<ul>
<li>Find out what's happening</li>
<li>Rate and review shows</li>
<li>Invite your friends</li>
<li><a href="/faces/register.xhtml">Join today!</a>
</li>
</ul>
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</body>
</html>
package com.example.starterexample.controller;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.ViewScoped;
import com.example.starterexample.model.Credentials;
/**
* Controller class for desktop and mobile login functionality.
*
* @uml.dependency supplier="com.mycompany.controller.AbstractController"
*/
@ManagedBean(name="loginController", eager=true)
//@ViewScoped
@RequestScoped
/*
* @ViewScoped means the object is created by JSF
* and its lifecycle is scoped to the current view.
* Once the user navigates to another view, the LoginControllerobject is released and
* will eventually be garbage-collected by the JVM
*/
public class LoginController extends AbstractController {
private static final long serialVersionUID = -6710063228036238737L;
@ManagedProperty(value = "#{credentials}")
private Credentials credentials;
public String login() {
String outcome = null;
try {
String username = credentials.getUsername();
String password = credentials.getPassword();
//User user = userService.findUser(username, password);
//if (user == null) {
// addErrorMessage("Invalid login");
// userSession.setUser(null);
//} else {
// userSession.setUser(user);
// if (!activeUsers.contains(user)) {
// activeUsers.add(user);
// }
//outcome = "members";
//}
addErrorMessage("Invalid login");
} catch (Exception e) {
logger.error("Unable to login:", e);
}
return outcome;
}
public void setCredentials(Credentials credentials) {
this.credentials = credentials;
}
}
package com.example.starterexample.model;
import javax.enterprise.inject.Model;
@Model
public class Credentials {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Sep 21, 2013 5:03:34 PM com.sun.faces.lifecycle.ProcessValidationsPhase execute
WARNING: /index.xhtml @19,67 value="#{credentials.username}": Target Unreachable, identifier 'credentials' resolved to null
javax.el.PropertyNotFoundException: /index.xhtml @19,67 value="#{credentials.username}": Target Unreachable, identifier 'credentials' resolved to null
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
at org.primefaces.renderkit.InputRenderer.findImplicitConverter(InputRenderer.java:170)
at org.primefaces.renderkit.InputRenderer.findConverter(InputRenderer.java:190)
at org.primefaces.renderkit.InputRenderer.getConvertedValue(InputRenderer.java:196)
at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
at javax.faces.component.UIInput.validate(UIInput.java:960)
at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
at javax.faces.component.UIInput.processValidators(UIInput.java:698)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at org.primefaces.component.panel.Panel.processValidators(Panel.java:297)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIForm.processValidators(UIForm.java:253)
at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
最佳答案
我也用这个例子进行自学等。实际上我和你遇到了同样的问题。此示例有错误,因此您不应盲目使用它。此 article帮助我更好地理解 bean 类型(CDI、EJB、JSF bean)并编写可行的代码。
您不应将 JSF 托管 bean 与 CDI 一起使用。 CDI bean 本身更强大。
这对我有用。
LoginController 开始像
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
@Named
@javax.faces.view.ViewScoped
public class LoginController extends AbstractController {
private static final long serialVersionUID = -6710063228036238737L;
@Inject
private ActiveUsers activeUsers;
@Inject
private Credentials credentials;
@Inject
private UserService userService;
....
}
import java.util.ArrayList;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
@Named("activeUsers")
@ApplicationScoped
public class ActiveUsers extends ArrayList<User> {
private static final long serialVersionUID = -3068333669859836249L;
}
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@Named("credentials")
@RequestScoped
public class Credentials {
private String password;
private String username;
public String getPassword() {
return password;
}
public String getUsername() {
return username;
}
public void setPassword(String password) {
this.password = password;
}
public void setUsername(String username) {
this.username = username;
}
}
关于jsf-2 - javax.el.PropertyNotFoundException :/index. xhtml @19,67 值 ="#{credentials.username}": Target Unreachable, 标识符 'credentials' 解析为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18932971/
有谁知道 xhtml 中选项卡的字符实体是什么? (嗯,如果有的话)... 最佳答案 (X)HTML 对制表符没有特殊支持:它们只是另一个空白字符,无论您是否对它们进行转义。 关于xhtml - XH
我了解根据 HTML 规范,向元素添加自定义属性是无效的。这对 XHTML 也无效吗? 我认为 XHTML 是 XML 家族的一部分,因此是可扩展的。作为可扩展性,使用自定义属性不是可以吗? 戴夫 最
有没有关于如何正确处理 XHTML (1.0 Transitional) 中的空格的信息?似乎 XHTML 不使用标准的 XML 空白处理。 编辑:梅比我对我到底在寻找什么有点不准确。我对元素如何呈现
据我了解,XHTML (1.0, 1.1) 和 XHTML 5 都不需要 DTD。如果这是真的,浏览器将如何区分两者? 我只能假设当浏览器供应商支持 (X)HTML 5 时,所有 XHTML 都将按照
我得到了一个带有 session 范围 bean 的 xhtml 页面。现在我想在另一个 html 页面中两次使用此页面,一次在屏幕左侧,一次在屏幕右侧。如果我包含它,它指的是同一个 bean,我怎样
就SEO而言,从客户端角度来看,我应该使用XHTML 1.0 Transitional还是XHTML 1.0 Strict? 为什么有些人仍然使用Transitional? 如果我们使用“严格过渡”,
我以前只用 p和 span元素...但我一直在插入使用正确的元素,这是我之前没有真正考虑过关于推荐的事情。 这是我想到的... I love your products! Jim Testimo
所有现代浏览器都理解 HTML,所以除了在键盘最右侧编写更多字符之外,兼容 XHTML 的意义何在。 最佳答案 没有一点我能想到的。 W3C 已经取消了 XHTML 2.0,尽管应该有一个 XHTML
我制作了一个 Windows 图标 (*.ico) 并将其命名为 favicon,它是 16 x 16 和 16 种颜色...我已将其包含在链接标签中 但是加载不正确 how do I add a f
我有一个问题: 在 Lift 网络框架 (Scala) 版本中。我得到: Message: java.util.NoSuchElementException scala.RandomAccessS
我已经编写了有效的 XHTML 1.0 Transitional 代码。我想添加社交分享按钮(twitter、facebook 和 google+),但所有这些按钮都使我的代码无效。有什么解决办法吗?
我想知道在 XHTML 中标记科学名称的最佳方法。 This answer说我应该使用 元素,我不太赞成,当然,除非它是正确的元素。 我可以使用 ,但鉴于 HTML 的第一个用途是标记科学文档,我想
角色属性是否有定义的值,如果有,您能说出它们是什么吗? 或者我可以为角色属性创建自己的值吗?它们区分大小写吗?它们必须是字母吗?可以有数字吗? 或者您可以同时拥有定义的值和用户创建的值。 最佳答案 快
分别阅读两者,看起来都一样,html+xml+javascript。 那和有什么区别?有没有? 最佳答案 XHTML是 w3c标准,一种也严格符合 XML 的 HTML 形式。 DHTML是一个很大程
在使用 XSL 将 XHTML 转换为 XHTML 时,我遇到了 namespace 问题。考虑作为示例输入: Test Remove this 然后
我有以下代码使用 Text.XHtml.Strict 库在 Haskell 中生成一个包含一系列带有 id 和类的 div 的空白 html 页面: module Main where import
我对 IE 的 XHTML 兼容性进行了激烈的辩论。唯一的问题是,我不确定这家伙是不是在挑衅。 从本质上讲,他声称 IE 完全不兼容 XHTML,并且无论使用何种浏览器,具有定义的 XHTML 文档类
我已经为此奋斗了一段时间,但我什至无法弄清楚为什么它不起作用。以这个简单的 XHTML 测试源为例: foobar
虽然不推荐使用 target="_blank",但为什么 W3C 验证器没有给出关于此的错误?您可以在 validator 中粘贴并检查此代码: Untitled Document Li
是否有可能使 anchor 链接内部没有具有背景图像和固定尺寸的文本,并且仍然适合SEO? CSS示例: a{display:block;width:50px;height:20px;backgrou
我是一名优秀的程序员,十分优秀!