我有一些 javascript,我正试图在 jsf 应用程序中使用它们。我已经缩小了范围,这样如果我去掉下面的行,一切正常,但是当我输入这些行时,我在 chrome 控制台中收到一个错误,上面写着“意外;” 并将第一行显示为if(maxdays > 1000) {
为什么将大于号转换为>?
if(maxdays > 1000) {
maxdays = 1000;
}
Run Code Online (Sandbox Code Playgroud)
编辑:这是整个 JSF 页面。
<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:head>
<title>Protocol Dashboard</title>
<link type="text/css" rel="stylesheet" href="../css/styles.css" />
<script type="text/javascript" src="../js/jquery-1.5.2.js"></script>
<script type="text/javascript" src="../js/highcharts.src.js"></script>
<script type="text/javascript">
$(document).ready(
function() {
//var chartData;
//var goodData;
var chart;
var studyType;
var categories;
var maxdays;
//var chart = new Highcharts.Chart({
var …Run Code Online (Sandbox Code Playgroud) 当使用 jsp 作为 JSF 应用程序的视图描述语言时,使用 f:loadbundle 非常简单。
我想知道当我使用facelets时把这个f:loadbundle放在哪里
我想将以下标记转换为 JSF h:commandLink,但我在使用 data-toggle 属性时遇到问题。
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
Run Code Online (Sandbox Code Playgroud)
这是我把它转换成的:
<h:commandLink styleClass="dropdown-toggle" data-toggle="dropdown">
Run Code Online (Sandbox Code Playgroud)
据我所知,commandLink 被呈现为 HTML 标签。但是重写成JSF后,下拉菜单无法使用。有任何想法吗?
问候,贝杰
我有一个模板,它是编辑某些元素的表单的一部分。要执行的操作因包含它的页面而异。所以我将 action 方法作为参数传递:
<ui:param name="option" value="#{someOptionBean}" />
...
<ui:include src="/WEB-INF/jsf/value-edit.xhtml">
<ui:param name="controllerParam" value="#{optionController}" />
<ui:param name="elementParam" value="#{option}" />
<ui:param name="actionParam" value="updateOption" />
</ui:include>
Run Code Online (Sandbox Code Playgroud)
或者:
<ui:param name="property" value="#{somePropertyBean}" />
...
<ui:include src="/WEB-INF/jsf/value-edit.xhtml">
<ui:param name="controllerParam" value="#{propertyController}" />
<ui:param name="elementParam" value="#{property}" />
<ui:param name="actionParam" value="updateProperty" />
</ui:include>
Run Code Online (Sandbox Code Playgroud)
并且value-edit.xhtml有一个命令按钮:
<p:commandButton value="Update" action="#{controllerParam[actionParam](elementParam)}" />
Run Code Online (Sandbox Code Playgroud)
到目前为止一切正常。
我的问题是现在操作方法没有相同数量的参数。他们是:
public void updateOption(Option option) { ... }
public void updateProperty(Item item, Prop property) { ... }
Run Code Online (Sandbox Code Playgroud)
所以我现在希望能够定义动作参数以具有以下内容:
<ui:param name="actionParam" value="updateOption(option)" />
<ui:param name="actionParam" value="updateProperty(item, property)" />
Run Code Online (Sandbox Code Playgroud)
或类似的东西: …
假设您有以下Facelet(使用Facelets 1.1.12):
edit_item.xhtml which i access with edit_item.jsf
Run Code Online (Sandbox Code Playgroud)
现在我有另一个页面将我发送到带有GET-paremeter ID的edit_item.jsf,uri看起来像这样: http://mysite.com/edit_item.jsf?ID=200
如何访问Bean并获取信息,并在JSF和Facelets的请求页面上显示?有没有办法在页面加载时运行bean?
我从JSF网站的编程开始.目前所有文件都有.xhtml结尾.当我去http:// localhost:8080/myProject/start.jsf一切都很好.但是当我将文件从start.xhtml重命名为start.jsf时,我变成了NoClassDefFound错误.
我的错是什么?
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud) 当我的页面无法正确呈现时,我在jboss控制台中看到了这些信息.有谁知道这意味着什么?
14:22:46,403 INFO [facelet] Facelet[/layout/header.xhtml] was modified @ 1
:54:54 PM, flushing component applied @ 2:22:43 PM
14:22:46,404 INFO [facelet] Facelet[/layout/header.xhtml] was modified @ 1
:54:54 PM, flushing component applied @ 2:22:43 PM
14:22:46,405 INFO [facelet] Facelet[/layout/header.xhtml] was modified @ 1
:54:54 PM, flushing component applied @ 2:22:43 PM
14:22:46,406 INFO [facelet] Facelet[/layout/header.xhtml] was modified @ 1
:54:54 PM, flushing component applied @ 2:22:43 PM
14:22:46,406 INFO [facelet] Facelet[/layout/header.xhtml] was modified @ 1
:54:54 PM, flushing component applied @ 2:22:43 …Run Code Online (Sandbox Code Playgroud) 我在我的Web应用程序(JSF 1.2,Spring和Tomcat 7)中遇到charset编码问题,而且我已经用尽了测试内容以查看它出错的地方.
每当我提交类似'çã'的内容时,我会得到'çã':这意味着我在UTF-8上发布的数据在JSF生命周期的某个地方被转换为ISO-8859-1.
我知道错误的转换是UTF-8到ISO-8859-1,因为它的输出相同:
System.out.println(new String("çã".getBytes("UTF-8"), "ISO-8859-1"));
Run Code Online (Sandbox Code Playgroud)
我相信错误的转换是在JSF生命周期中的某个地方(它可以在之前吗?)因为我在我的MB中设置了一个验证器:
public void debugValidator(FacesContext context, UIComponent component,
Object object) throws ValidationException {
System.out.println("debug validator:");
System.out.println(object);
System.out.println("\n");
throw new ValidationException("DEBUG: " + object.toString());
}
Run Code Online (Sandbox Code Playgroud)
并且它的消息返回:"DEBUG:çã"
<?xml version="1.0" encoding="UTF-8"?>.CharacterEncodingFilter在我的web.xml中将请求字符编码设置为UTF-8.URIEncoding="UTF-8"Tomcat的server.xml文件,只是为了保证你知道我还能测试什么吗?可能是我的错误假设?
提前致谢!
我想在另一个模板中使用Facelets模板.目前我有一个"基础"模板,到目前为止,我已经完成了所有页面.它有一个顶部和一个内容区域.
顶部有徽标,菜单,登录/注销功能,而内容区域则显示内容.
现在我需要做另一个页面(保存用户个人资料信息),我想在左边有一个菜单,并在右边显示结果.该页面应插入基本模板内容区域.
是否可以创建一个定义这两个区域(profile_left和profile_content)的新模板,并以某种方式仍然使用基本模板?
我没有理由不能只复制基本模板中的代码并添加我想要的新"定义"(profile_left和profile_content),但我仍然想知道是否可以继续使用原始基本模板.
这被称为3次,每行一次.(示例表有3行)
....
<ui:param name="rowIndex" value="#{cc.attrs.rowIndex}" />
<ui:param name="rowActive" value="#{cc.attrs.activeRow}" />
<c:set var="index" value="#{rowIndex}" type="java.lang.Long"/>
<c:set var="activeRowIndex" value="#{rowActive}" type="java.lang.Long"/>
<c:choose>
<c:when test="${index == 2}">
ACTIVE
</c:when>
<c:when test="${index != activeRowIndex}">
${index} - ${activeRowIndex} - INACTIVE
</c:when>
<c:otherwise>
NONE
</c:otherwise>
</c:choose>
....
Run Code Online (Sandbox Code Playgroud)
结果:
0 - 1 - 不活跃
1 - 1 - 不活跃
2 - 1 - 不活跃
我原以为:
0 - 1 - 不活跃
没有
活性
我很无能为什么结果与我的预期有很大的不同.所以我希望你能帮助我:-)