小编Dan*_*Dan的帖子

Spring Web MVC - 验证个人请求参数

我在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到整个域对象并在那里添加验证约束,但是目前我的代码被设置为接受如上所示的各个参数.

使用此方法将验证应用于输入参数的最直接方法是什么?

java validation spring spring-mvc

48
推荐指数
3
解决办法
7万
查看次数

如何使用GitHub Pull Requests做修补程序

警告:我对git和GitHub都很新.

因此,在我目前的设置中,我的团队使用git flow Hotfixes(通常由GitKraken或IntelliJ等图形工具启动和完成)进行更改,这些更改必须合并到两个分支中并在两个分支中向上推送.例如,流程将是:

  1. 从大师拉最新
  2. 启动修补程序
  3. 提交更改
  4. 将修补程序分支合并到主服务器中并开发并推送上游两者

我们现在正在考虑将代码移到GitHub中,并希望开始使用Pull Requests,原因如下:

  • CI挂钩运行测试和东西
  • 放置代码特定注释的地方与底层"问题"没有直接关系
  • 避免每个人不断地将最新的master/develop拉到他们的本地机器上,以便他们可以合并更改

但在Hotfixes的情况下,我不知道该怎么办,因为我正在合并到两个分支但它真的是一个"动作"所以手动创建两个拉动请求似乎很奇怪,特别是因为我们当前的流程中的步骤4)单击一下.

有一种聪明的方法来处理这个问题吗?我理想的情况是推动Pull Request上的Merge按钮只会合并到两者中,但这似乎不是一个可用的选项.

github git-flow

30
推荐指数
1
解决办法
5067
查看次数

SQL"加入"空值

由于我无法控制的原因,我需要连接两个表,我需要空值来匹配.我能想到的最好的选择是吐出一个UUID并将其用作我的比较值,但它看起来很难看

SELECT * FROM T1 JOIN T2 ON nvl(T1.SOMECOL,'f44087d5935dccbda23f71f3e9beb491') = 
   nvl(T2.SOMECOL,'f44087d5935dccbda23f71f3e9beb491')
Run Code Online (Sandbox Code Playgroud)

我怎么能做得更好?如果重要的话,这在Oracle上,并且上下文是一个应用程序,其中必须将一批用户上载的数据与一批现有数据进行比较,以查看是否有任何行匹配.回想起来,我们应该阻止任一数据集中的任何连接列包含空值,但我们没有,现在我们必须忍受它.

编辑:要清楚,我不仅关注空值.如果列不为null,我希望它们匹配实际值.

sql oracle null

22
推荐指数
3
解决办法
7万
查看次数

Javascript/jQuery:以编程方式关注链接

在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)mailtoURL 的情况.后者尤其重要.至少在Firefox中,调用window.location.href = "mailto:somebody@example.com"导致窗口的unload处理程序触发,而mailto根据我的判断,只是单击链接.

我正在寻找一种方法来触发浏览器的默认链接处理,来自Javascript代码.

这种机制存在吗?工具包特定的答案也欢迎(特别是对于Gecko).

html javascript hyperlink

16
推荐指数
2
解决办法
2万
查看次数

由于背景图像,在IE中避免"混合内容"警告的规则究竟是什么?

这与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)

事实上,这对我有用.我见过其他人说你必须使用绝对httpsURL来引用图像,而不是相对的图像.

这里的真实故事是什么?是否有一些"官方"解释或至少提到规则是什么?或者如果没有这个,是否有一套标准的指导方针,如果遵循这些指导方针,则极不可能触发警告?

html javascript https jquery internet-explorer

14
推荐指数
1
解决办法
7787
查看次数

PL/SQL批量收集到具有稀疏键的关联数组

我想在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中完成吗?如果是这样,怎么样?

oracle plsql associative-array

11
推荐指数
2
解决办法
4万
查看次数

将多个模块的Javadoc组合到一个集合中

我有一个由几个模块组成的Java应用程序.我想为它们共同生成Javadoc:也就是说,从这几个模块中,我想要一个单独的HTML文件集合index.html,单个allclasses-frame.html等等,各种超链接应该跨模块工作.

我使用Maven,但我不一定限于Maven特定的解决方案.这将由cron作业执行,因此也可以使用其他工具.

在这种情况下,自动生成Javadoc最简单的方法是什么?

java javadoc maven

10
推荐指数
1
解决办法
4513
查看次数

Webkit - 动态创建样式表 - 什么时候真正加载?

我有一些代码(它实际上不是我的,但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)

但有时甚至在那一点上,找不到样式表对象.

所以,我的问题是:

  1. load事件实际上不保证styleSheet对象可用吗?这是一个错误吗? …

javascript jquery dom webkit

8
推荐指数
1
解决办法
1499
查看次数

CORS withCredentials - 支持有限吗?

我注意到某些浏览器似乎不支持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 xmlhttprequest cors

8
推荐指数
1
解决办法
3165
查看次数

Javascript:检测页面何时"返回"导航到

假设我在浏览器中打开了一个页面,然后转到我的地址栏并输入另一个页面.然后我点击后退按钮转到我的原始页面.我想写一些可以检测这种情况并响应它的Javascript代码.

我最好不能告诉ready事件,onload在这种情况下,页面本身的任何内联Javascript都会被重新执行.还有什么我可以做的吗?

跨浏览器支持在这里很重要.基于jQuery的解决方案首选但不是必需的.

为清晰起见编辑:我假设的导航是页面A - >页面B - >返回页面A,我假设页面B可能在我的控制之下,也可能不在我的控制之下.

html javascript navigation jquery

7
推荐指数
1
解决办法
4934
查看次数