我的计算机语言课已经过了几年,所以我忘记了BNF和EBNF的细节,而且我旁边没有教科书.具体来说,我忘记了如何将EBNF转换为BNF.
从我记忆中的一点点,我知道其中一个要点就是转换{ term }成<term> | <many-terms>.但我不记得其他规则.我试着在网上看一下,但是我只能找到关于家庭作业问题的链接,或者关于用花括号转换术语的小评论.我找不到定义翻译的详尽规则列表.
language-agnostic computer-science recursive-descent bnf ebnf
我有这个尝试并抓住问题.我正在尝试重定向到另一个页面.但有时它会这样做,有时却不行.我认为问题在于尝试和捕捉.有人可以帮助我理解这一点.谢谢
var pg = new Object();
var da = document.all;
var wo = window.opener;
pg.changeHideReasonID = function(){
if(pg.hideReasonID.value == 0 && pg.hideReasonID.selectedIndex > 0){
pg.otherReason.style.backgroundColor = "ffffff";
pg.otherReason.disabled = 0;
pg.otherReason.focus();
} else {
pg.otherReason.style.backgroundColor = "f5f5f5";
pg.otherReason.disabled = 1;
}
}
pg.exit = function(pid){
try {
if(window.opener.hideRecordReload){
window.opener.hideRecordReload(pg.recordID, pg.recordTypeID);
} else {
window.opener.pg.hideRecord(pg.recordID, pg.recordTypeID);
}
} catch(e) {}
try {
window.opener.pg.hideEncounter(pg.recordID);
} catch(e) {}
try {
window.opener.pg.hideRecordResponse(pg.hideReasonID.value == 0 ? pg.otherReason.value : pg.hideReasonID.options[pg.hideReasonID.selectedIndex].text);
} catch(e) {}
try {
window.opener.pg.hideRecord_Response(pg.recordID, …Run Code Online (Sandbox Code Playgroud) 我有一个输出JSON的servlet.servlet的输出编码是ISO-8859-1.我们的webapp中的页面也设置为ISO-8859-1.我会使用UTF-8,但这不在我的控制之内; 我们必须使用ISO-8859-1.
当我单独点击servlet时,我可以看到已经输出的JSON数据.字符编码是正确的,没有一个字符看起来很奇怪.
但是,当我通过AJAX调用servlet并使用检索到的数据来填充选择框时,我得到了(似乎)所有具有重音符号的字符(例如我带有重音符号或重音符号,音乐符号或抑扬音符号) ).当我在Firebug下的Net选项卡中查看响应时,我可以看到文本看起来很好.但是,当我使用该数据填充选择框时,我会得到带有问号的钻石.
这些字符都是有效的ISO-8859-1字符,所以我不明白为什么它们没有正确显示.
编辑
更多信息.我用GET,jQuery.ajax我已经开始scriptCharset了ISO-8859-1.在服务器端,我已经明确地将编码设置为ISO-8859-1request.setCharacterEncoding("ISO-8859-1");
编辑
代码示例:
这就是我目前所拥有的.我scriptCharset: "ISO-8859-1"没有添加任何效果.
jQuery.ajax({
url: "/countryAndProvinceCodeServlet",
data: data,
dataType: "json",
type: "GET",
success: function(data) {
...
},
});
Run Code Online (Sandbox Code Playgroud)
我的servlet使用org.json.JSONObject并通过执行简单输出字符串response.getWriter().print(jsonObject.toString());
UPDATE
约每JSON,以及如何它应该是UTF-8的评论,我想看看我是否能获取数据为文本(所以设置dataType到text中jQuery.ajax),然后评估它作为自己的JSON(在Javascript).这似乎也不起作用!当我这样做时console.log,我仍然可以获得时髦的钻石.但是,当我在Firebug的Net选项卡下查看它时,一切都显示正常:
网络标签:
{"error":false,
"provinces":{"DZ-01":"Adrar",
"DZ-16":"Alger",
"DZ-23":"Annaba",
"DZ-44":"Aïn Defla",
"DZ-46":"Aïn Témouchent",
"DZ-05":"Batna",
"DZ-07":"Biskra",
"DZ-09":"Blida",
"DZ-34":"Bordj Bou Arréridj",
"DZ-10":"Bouira",
"DZ-35":"Boumerdès",
"DZ-08":"Béchar",
"DZ-06":"Béjaïa",
"DZ-02":"Chlef",
"DZ-25":"Constantine",
"DZ-17":"Djelfa",
"DZ-32":"El Bayadh",
"DZ-39":"El Oued",
"DZ-36":"El Tarf", …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 检索默认验证错误消息MessageSource。我正在使用的代码使用反射来检索message参数的值。对于不覆盖message参数的约束,我想检索默认错误消息。当我调用message验证注释上的方法时,我得到{org.hibernate.validator.constraints.NotBlank.message}(例如,对于@NotBlank注释)。然后我尝试使用MessageSource来获取错误消息,如下所示:
String message = messageSource.getMessage(key, null, Locale.US);
Run Code Online (Sandbox Code Playgroud)
我尝试设置key为{org.hibernate.validator.constraints.NotBlank.message}, org.hibernate.validator.constraints.NotBlank.message(去掉大括号),甚至org.hibernate.validator.constraints.NotBlank但我不断得到null. 我在这里做错了什么?
更新
一个澄清。我的印象是 Springmessage.properties为其约束提供了一个默认文件。我的这个假设正确吗?
更新
更改问题的名称以更好地反映我想要做的事情。
我正在使用Spring创建RESTful服务,我对媒体类型的语法感到好奇.
根据我的理解,HAL + JSON的一般媒体类型是application/hal+json.此外,根据我的理解,支持HAL + JSON的特定于供应商的自定义媒体类型将是类似的application/vnd.api.entity.hal+json.但是,我也看到了application/vnd.api.entity+hal+json.哪一个是正确的?
另外,对于HAL + JSON,正确的通配符类型是什么?它会是application/*.hal+json或application/*+hal+json.任何相关RFC的链接将不胜感激.谢谢!
这是一个演示我面临的问题的示例:
ScriptEngine engine = new NashornScriptEngineFactory().getScriptEngine(
new String[] { "-strict" }
);
try {
engine.eval("function Foo(src) { this.src = src }; var e = { x: new Foo(\"what\") };");
ScriptContext c = new SimpleScriptContext();
c.setBindings(engine.createBindings(), ScriptContext.ENGINE_SCOPE);
c.getBindings(ScriptContext.ENGINE_SCOPE).putAll(engine.getBindings(ScriptContext.ENGINE_SCOPE));
System.out.println(engine.eval("var z = e.x; z === e.x;", c));
} catch(Exception e) {
throw new RuntimeException(e);
}
Run Code Online (Sandbox Code Playgroud)
我知道在另一个上下文中实例化的对象被认为是"外来的"并最终被ScriptObjectMirror实例包装.我假设这就是为什么我在这里遇到问题.我相信每当x被解除引用时,ScriptObjectMirror就会创建一个新实例; 这是唯一可以解释以下代码也返回的代码false:
System.out.println(engine.eval("e.x === e.x;", c));
Run Code Online (Sandbox Code Playgroud)
有没有解决的办法?我正在寻找一些我可以用Java做的事情,或者以某种方式设置上下文/绑定,而不是用JavaScript编写代码来解决这个问题.
我最初的目标是能够使用定义的路径依赖buildscript中build.gradle,已导入的脚本中build.gradle使用apply from:。但是,由于无法解析类,因此无法编译外部脚本。在研究这个问题后,我发现需要复制逻辑,所以我想我会提取buildscript到一个单独的文件中。然后我就可以在内部build.gradle和外部脚本中应用它。
我什至没有成功应用来自 的外部构建脚本文件build.gradle,更不用说从外部脚本应用它了。我尝试了多种方法,但无论我尝试什么,似乎总是以两个问题之一结束:gradle.properties无法使用来自的属性,或者找不到插件(即使已定义类路径依赖项)。
目前我的gradle/buildscript.gradle文件是这样的:
buildscript {
repositories {
maven { url "http://some.url.com" }
}
dependencies {
classpath "my.gradle.plugin:gradle-plugin:1.0.0"
classpath "my.library:my-library:$libraryVersion"
}
}
Run Code Online (Sandbox Code Playgroud)
libraryVersion中已定义gradle.properties。我build.gradle的如下:
buildscript {
apply from: "gradle/buildscript.gradle"
}
apply plugin: 'my.gradle.plugin.PluginClass'
Run Code Online (Sandbox Code Playgroud)
当我这样做时,gradle 抱怨它找不到带有 id 的插件my.gradle.plugin.PluginClass。我尝试删除引号,并且还尝试project.plugin.apply(...)使用带引号和不带引号的插件的 FQN;这两种情况都会导致 gradle 出错,并显示一条消息,指出它无法my在根项目中找到该属性。
我也试过:
buildscript {
apply from: "gradle/buildscript.gradle", to: buildscript
}
apply plugin: …Run Code Online (Sandbox Code Playgroud) 是否有任何测试多线程代码的指导原则(除了在问题上抛出一堆线程并交叉手指).
我基本上正在寻找测试数据损坏,死锁和其他并发问题的好方法.基本上我希望能够通过测试证明代码是线程安全的.
Java中是否有任何框架可以让您轻松编写多线程场景的测试?
我昨天发布了一个问题,关于我对XOR运算符的反向传播神经网络所遇到的问题.我做了一些工作,并意识到这可能与没有偏见神经元有关.
我的问题是,偏置神经元的作用一般是什么,它在识别XOR算子的反向传播神经网络中的作用是什么?是否可以创建一个没有偏置神经元?
artificial-intelligence xor backpropagation neural-network bias-neuron
如果input表单中的元素与表单的本机属性具有相同的名称,则该元素将隐藏本机属性.
例如,请考虑以下形式:
<form id = "test">
<input name="tagName" type="text" />
<input name="nodeName" type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)
该form元素的tagName和nodeName都正常返回FORM.但在这种情况下,以下代码:
var f = document.getElementById("test");
console.log(f.tagName);
console.log(f.nodeName);
console.log(f["tagName"]);
console.log(f["nodeName"]);
Run Code Online (Sandbox Code Playgroud)
显示:
<input name=?"tagName" type=?"text">?
<input name=?"nodeName" type=?"text">?
<input name=?"tagName" type=?"text">?
<input name=?"nodeName" type=?"text">?
Run Code Online (Sandbox Code Playgroud)
是否有解决方法(除了重命名字段)?getAttribute适用于像name,action或者method,但不适用于像nodeName或等属性tagName.
更有趣的是:在这个小提琴中,我只是简单地记录表单本身.通常会显示HTML,但现在Chrome只会记录TypeError.
java ×6
javascript ×3
spring ×2
ajax ×1
bias-neuron ×1
bnf ×1
build ×1
concurrency ×1
ebnf ×1
forms ×1
gradle ×1
html ×1
http ×1
iso-8859-1 ×1
jquery ×1
json ×1
media-type ×1
nashorn ×1
rest ×1
testing ×1
try-catch ×1
unit-testing ×1
validation ×1
xor ×1