Javascript 即使是基本的DOJO也不能使用JSF(2.0)。不走运
我对Dojo非常陌生,并尝试了一个关于Dojo和JSF的教程。我浏览了大量链接,以了解如何将DOJO与JSF集成 DOJO版本:1.9 JSF版本:2.0,带JSP 我编写了一个同时包含JSF和DOJO的代码,但显然它不能正常工作 首先,在Eclipse(IDE)中无法识别dojo标记。这是一种痛苦 记住每一个标签。IDE中的每个标记都高亮显示为 黄色表示未定义的属性名称。我不知道为什么不能按ALT+Space来获取dojo的组件。为什么即使包含了所有脚本,组件也无法解析 代码段:Javascript 即使是基本的DOJO也不能使用JSF(2.0)。不走运,javascript,jsf,jsf-2,dojo,Javascript,Jsf,Jsf 2,Dojo,我对Dojo非常陌生,并尝试了一个关于Dojo和JSF的教程。我浏览了大量链接,以了解如何将DOJO与JSF集成 DOJO版本:1.9 JSF版本:2.0,带JSP 我编写了一个同时包含JSF和DOJO的代码,但显然它不能正常工作 首先,在Eclipse(IDE)中无法识别dojo标记。这是一种痛苦 记住每一个标签。IDE中的每个标记都高亮显示为 黄色表示未定义的属性名称。我不知道为什么不能按ALT+Space来获取dojo的组件。为什么即使包含了所有脚本,组件也无法解析 代码段: &l
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib uri="http://richfaces.org/rich" prefix="rich"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
@import url("${pageContext['request'].contextPath}/script/
dojo_lib/dijit/themes/claro/claro.css");
@import url("${pageContext['request'].contextPath}/script/
dojo_lib/dojo/resources/dojo.css");
</style>
<script type="text/javascript">
var djConfig = {
parseOnLoad: true,
isDebug: false,
};
</script>
<script type="text/javascript" src="${pageContext['request'].contextPath}/script/dojo_lib/dojo/dojo.js"></script>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dijit.form.ValidationTextBox");
dojo.require("dijit.form.Textarea");
</script>
<script type="text/javascript">
function dojoInit(){
dijit.registry.byClass('dijit.form.ValidationTextBox').forEach(function(pane){
pane.setValue(pane.domNode.previousSibling.value);
});
dijit.registry.byClass('dijit.form.Textarea').forEach(function(pane){
pane.setValue(pane.domNode.previousSibling.value);
});
}
dojo.addOnLoad(dojoInit);
</script>
<script type="text/javascript">
function setDojoValue(){
dijit.registry.byClass('dijit.form.ValidationTextBox').forEach(function(pane){
pane.domNode.previousSibling.value = pane.getValue();
});
dijit.registry.byClass('dijit.form.Textarea').forEach(function(pane){
pane.domNode.previousSibling.value = pane.getValue();
});
}
</script>
</head>
<body class="claro">
<f:view>
<h3>Project</h3>
<h:form id="project">
<table>
<tbody>
<tr>
<td>Project name:</td>
<td><h:inputHidden value="#{projectFormBean.projectName}"/><f:verbatim>
<input type="text" name="projectName" dojotype="dijit.form.ValidationTextBox" regExp="[\w]+"
required="true" invalidMessage="Invalid.Only Alphabets required" requiredMessage="Input Required"/></f:verbatim>
</td>
</tr>
<tr>
<td>Project description: </td>
<td><h:inputHidden value="#{projectFormBean.projectDescription}"/><f:verbatim>
<textarea dojotype="dijit.form.Textarea" style="width:80%">
</textarea></f:verbatim>
</td>
</tr>
</tbody>
</table>
<h:commandButton id="button_submit" actionListener="#{projectFormBean.invokeAction}"
value="Submit" type="submit" onclick="setDojoValue();"></h:commandButton>
</h:form>
</f:view>
<script>
require([
'dojo/parser',
'dojo/domReady!'
], function(parser){
parser.parse(); // tell dojo to check the DOM for widgets
});
</script>
</body>
</html>
@导入url(${pageContext['request'].contextPath}/script)/
dojo_lib/dijit/themes/claro/claro.css);
@导入url(${pageContext['request'].contextPath}/script)/
dojo_lib/dojo/resources/dojo.css”);
var djConfig={
parseOnLoad:true,
isDebug:false,
};
require(“dojo.parser”);
require(“dijit.form.ValidationTextBox”);
require(“dijit.form.Textarea”);
函数dojoInit(){
dijit.registry.byClass('dijit.form.ValidationTextBox').forEach(函数(窗格){
setValue(pane.domNode.previousSibling.value);
});
dijit.registry.byClass('dijit.form.Textarea').forEach(函数(窗格){
setValue(pane.domNode.previousSibling.value);
});
}
dojo.addOnLoad(dojoInit);
函数setDojoValue(){
dijit.registry.byClass('dijit.form.ValidationTextBox').forEach(函数(窗格){
pane.domNode.previousSibling.value=pane.getValue();
});
dijit.registry.byClass('dijit.form.Textarea').forEach(函数(窗格){
pane.domNode.previousSibling.value=pane.getValue();
});
}
项目
项目名称:
项目说明:
要求([
“dojo/parser”,
“dojo/domReady!”
],函数(解析器){
parser.parse();//告诉dojo检查DOM中的小部件
});
加载页面时,3个组件可见,而不是2个
a。输入带有“X”标记的文本。我无法写入此组件b。
输入项目名称的文本。C项目描述的文本区域
面临以下问题:
a。将显示不应显示的带有X的组件。B项目
名称字段已验证。但是只有在输入中添加空格后,
验证启动。否则它不会开火。C验证消息
显示在文本区域下方,而理想情况下应显示在右侧
下面是相应的组件。D在表单提交时,验证是
没有被解雇。我不知道输入值是否正确。E
在支持bean操作侦听器中未获得任何值。两者
字段打印为空白
有人请指导。JSF语法在我看来像JSF 1.2。搜索基本JSF2页面的外观示例在类似于将jQuery与JSF集成的情况下,您必须记住JSF将充当HTML生成器,JSF组件将呈现为HTML组件,就这么简单。将JS库与JSF集成不是火箭科学。更多信息:顺便说一句,Eclipse默认不支持JS库。也许您需要一个插件来处理DOJO语法。您可以在网上搜索,也可以将其视为学习DOJO的一次很好的体验。@LuiggiMendoza我已经很容易地将Jquery集成到我的项目中。根本没有问题。我们广泛使用它来服务许多不同的目的。我在这里尝试的是集成DOJO。毫无疑问,学习将是一项伟大的经验,但基本的例子至少应该有用。这远远不能正常工作。若要停止未定义的属性警告,请尝试使用data dojo type=“widget.class”,而对于其他用户,请使用data dojo props=“prop1:val,prop2:val2”…,除非eclipse jsf有dojo插件,否则您将永远无法获得自动完成