我在Spring Web MVC 3.0中运行一个webapp,我有许多控制器方法,其签名大致如下:
@RequestMapping(value = "/{level1}/{level2}/foo", method = RequestMethod.POST)
public ModelAndView createFoo(@PathVariable long level1,
@PathVariable long level2,
@RequestParam("foo_name") String fooname,
@RequestParam(value = "description", required = false) String description);
Run Code Online (Sandbox Code Playgroud)
我想添加一些验证 - 例如,description
应该限制在一定长度或fooname
应该只包含某些字符.如果此验证失败,我想向用户返回一条消息,而不是仅抛出一些未经检查的异常(如果我让数据渗透到DAO层,那么无论如何都会发生这种情况).我知道JSR303,但没有使用它,并不太明白如何在Spring上下文中应用它.
根据我的理解,另一种选择是绑定@RequestBody
到整个域对象并在那里添加验证约束,但是目前我的代码被设置为接受如上所示的各个参数.
使用此方法将验证应用于输入参数的最直接方法是什么?
警告:我对git和GitHub都很新.
因此,在我目前的设置中,我的团队使用git flow Hotfixes(通常由GitKraken或IntelliJ等图形工具启动和完成)进行更改,这些更改必须合并到两个分支中并在两个分支中向上推送.例如,流程将是:
我们现在正在考虑将代码移到GitHub中,并希望开始使用Pull Requests,原因如下:
但在Hotfixes的情况下,我不知道该怎么办,因为我正在合并到两个分支但它真的是一个"动作"所以手动创建两个拉动请求似乎很奇怪,特别是因为我们当前的流程中的步骤4)单击一下.
有一种聪明的方法来处理这个问题吗?我理想的情况是推动Pull Request上的Merge按钮只会合并到两者中,但这似乎不是一个可用的选项.
由于我无法控制的原因,我需要连接两个表,我需要空值来匹配.我能想到的最好的选择是吐出一个UUID并将其用作我的比较值,但它看起来很难看
SELECT * FROM T1 JOIN T2 ON nvl(T1.SOMECOL,'f44087d5935dccbda23f71f3e9beb491') =
nvl(T2.SOMECOL,'f44087d5935dccbda23f71f3e9beb491')
Run Code Online (Sandbox Code Playgroud)
我怎么能做得更好?如果重要的话,这在Oracle上,并且上下文是一个应用程序,其中必须将一批用户上载的数据与一批现有数据进行比较,以查看是否有任何行匹配.回想起来,我们应该阻止任一数据集中的任何连接列包含空值,但我们没有,现在我们必须忍受它.
编辑:要清楚,我不仅关注空值.如果列不为null,我希望它们匹配实际值.
在Javascript代码中,我想以编程方式使浏览器关注我页面上的链接.简单案例:
<a id="foo" href="mailto:somebody@example.com">something</a>
Run Code Online (Sandbox Code Playgroud)
function goToBar() {
$('#foo').trigger('follow');
}
Run Code Online (Sandbox Code Playgroud)
这是假设,因为它实际上不起作用.不,触发click
不会这样做.
我知道window.location
并且window.open
这些与本地链接跟踪有所不同,在某些方面对我来说很重要:a)存在<base />
元素,b)mailto
URL 的情况.后者尤其重要.至少在Firefox中,调用window.location.href = "mailto:somebody@example.com"
导致窗口的unload
处理程序触发,而mailto
根据我的判断,只是单击链接.
我正在寻找一种方法来触发浏览器的默认链接处理,来自Javascript代码.
这种机制存在吗?工具包特定的答案也欢迎(特别是对于Gecko).
这与CSS背景图片引起的SSL和混合内容有关,但这个问题没有被接受的答案,而我要问的是一个更具体的问题.
在某些情况下,当访问HTTPS网站时,如果元素被赋予带有背景图像的样式,IE将抛出"混合内容"警告.我找到了一个论坛参考,例如,如果你将参考文献放在样式表中,就可以避免警告
#someElement a {
width:11px;
height:11px;
display:block;
overflow:hidden;
background:url(../images/sprites_list.png) no-repeat;
cursor:hand;
cursor:pointer;
background-position:0px -72px;
}
Run Code Online (Sandbox Code Playgroud)
但是如果你试图创建内联元素,那就不是了
$('#someElement').append("<a title='something' style='background: url(../images/sprites_list.png) no-repeat; ... // etc
Run Code Online (Sandbox Code Playgroud)
事实上,这对我有用.我见过其他人说你必须使用绝对https
URL来引用图像,而不是相对的图像.
这里的真实故事是什么?是否有一些"官方"解释或至少提到规则是什么?或者如果没有这个,是否有一套标准的指导方针,如果遵循这些指导方针,则极不可能触发警告?
我想在PL/SQL中执行SQL查询,并将结果填充到关联数组中,其中SQL中的一列成为关联数组中的键.例如,假设我有一个Person
带有列的表
PERSON_ID INTEGER PRIMARY KEY
PERSON_NAME VARCHAR2(50)
Run Code Online (Sandbox Code Playgroud)
...和价值观如下:
PERSON_ID | PERSON_NAME
------------------------
6 | Alice
15 | Bob
1234 | Carol
Run Code Online (Sandbox Code Playgroud)
我想批量收集此表TABLE OF VARCHAR2(50) INDEX BY INTEGER
,使得6
此关联数组中的键具有值Alice
等等.可以在PL/SQL中完成吗?如果是这样,怎么样?
我有一个由几个模块组成的Java应用程序.我想为它们共同生成Javadoc:也就是说,从这几个模块中,我想要一个单独的HTML文件集合index.html
,单个allclasses-frame.html
等等,各种超链接应该跨模块工作.
我使用Maven,但我不一定限于Maven特定的解决方案.这将由cron作业执行,因此也可以使用其他工具.
在这种情况下,自动生成Javadoc最简单的方法是什么?
我有一些代码(它实际上不是我的,但SlickGrid库)创建一个<style>
元素,将其插入DOM,然后立即尝试在document.styleSheets集合中查找新的样式表.
在WebKit中,这有时会失败.我实际上并不知道情况如何,但这并不是一贯可重复的.我想我可以通过更改代码解决它,所以load
在样式元素上的事件之前不会检查StyleSheet对象,如下所示:
$style = $("<style type='text/css' rel='stylesheet' />").appendTo($("head"));
var rules = ...;// code to create the text of the rules here
if ($style[0].styleSheet) { // IE
$style[0].styleSheet.cssText = rules.join(" ");
} else {
$style[0].appendChild(document.createTextNode(rules.join(" ")));
}
$style.bind('load', function() {
functionThatExpectsTheStylesheet();
});
Run Code Online (Sandbox Code Playgroud)
和functionThatExpectsTheStylesheet尝试找到实际的样式表对象,如下所示:
var sheets = document.styleSheets;
for (var i = 0; i < sheets.length; i++) {
if ((sheets[i].ownerNode || sheets[i].owningElement) == $style[0]) {
stylesheet = sheets[i];
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但有时甚至在那一点上,找不到样式表对象.
所以,我的问题是:
load
事件实际上不保证styleSheet对象可用吗?这是一个错误吗? …我注意到某些浏览器似乎不支持CORS请求中的Credentials,至少在某些情况下.具体来说,在IE 10中,尝试将xhr.withCredentials = true
结果设置为:
SCRIPT5022: InvalidStateError
在Safari 5(但不是6)我得到了
INVALID_STATE_ERR: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable.
再次,回应同一声明.
这些是已知的问题,还是我以某种方式设置了我的XHR错误?是否有支持哪些浏览器的列表withCredentials
?
假设我在浏览器中打开了一个页面,然后转到我的地址栏并输入另一个页面.然后我点击后退按钮转到我的原始页面.我想写一些可以检测这种情况并响应它的Javascript代码.
我最好不能告诉ready
事件,onload
在这种情况下,页面本身的任何内联Javascript都会被重新执行.还有什么我可以做的吗?
跨浏览器支持在这里很重要.基于jQuery的解决方案首选但不是必需的.
为清晰起见编辑:我假设的导航是页面A - >页面B - >返回页面A,我假设页面B可能在我的控制之下,也可能不在我的控制之下.