在Spring MVC 3中指定HTTP"位置"响应头的首选方法是什么?
据我所知,Spring只会提供一个"位置"来响应重定向("redirect:xyz"或RedirectView),但有些场景应该与实体主体一起发送(例如,作为"201 Created"的结果.
我担心我唯一的选择是手动指定它:
httpServletResponse.setHeader("Location", "/x/y/z");
Run Code Online (Sandbox Code Playgroud)
它是否正确?有没有更好的方法来解决这个问题?
有没有办法在Hibernate中映射工厂方法(而不是让Hibernate调用默认构造函数并反射设置属性或字段)?
如果无法映射,Hibernate是否为逐个类的自定义对象创建提供了一个钩子?
谢谢!
是否有SBT任务来增加项目的版本?
给出类似以下build.sbt的初始配置
name := 'My Project'
organization := 'org.example'
version := '0.1.0'
Run Code Online (Sandbox Code Playgroud)
和major.minor.patch的版本命名,我希望像SBT这样的任务
> incrementVersionPatch
Run Code Online (Sandbox Code Playgroud)
这将导致版本的0.1.1
.
(理想情况下也是相应的incrementVersionMinor
和incrementVersionMajor
.)
我觉得这必须已经存在,但无法找到办法.
我(无意中)遇到了一些模式匹配语法,我没想到要编译,现在无法弄清楚.
它似乎与...有关unapplySeq
.
请注意case x List(_,_)
这个简单示例中的部分:
val xs = List(1, 2, 3) //> xs : List[Int] = List(1, 2, 3)
xs match {
case x List (_, _) => "yes"
case _ => "no"
} //> res0: String = yes
Run Code Online (Sandbox Code Playgroud)
我习惯于:
或@
模式匹配语法,但我对此感到困惑.这种语法如何工作以及它与它的关系是什么(如果有的话)unapplySeq
?
在Scala 2.11.6中执行的示例代码
在Antlr4 maven插件antlr4-maven-plugin中指定包的格式是什么?
我觉得我应该能够做到以下几点:
<plugin>
<groupId>com.tunnelvisionlabs</groupId>
<artifactId>antlr4-maven-plugin</artifactId>
<version>4.0</version>
<configuration>
<arguments>package my.package.name</arguments>
</configuration>
<executions>
<execution>
<goals>
<goal>antlr4</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
但这会导致以下错误:
[ERROR] Failed to execute goal com.tunnelvisionlabs:antlr4-maven-plugin:4.0:antlr4 (default) on project my_project: Unable to parse configuration of mojo com.tunnelvisionlabs:antlr4-maven-plugin:4.0:antlr4 for parameter arguments: Cannot assign configuration entry 'arguments' with value 'package my.package.name' of type java.lang.String to property of type java.util.List -> [Help 1]
Run Code Online (Sandbox Code Playgroud) 我试图理解在处理空值并在for-comprehension中键入注释时看起来像是奇怪的行为.
举个例子:
def f(): String = null
for {
a <- Option("hello")
b = f()
} yield (a, b)
Run Code Online (Sandbox Code Playgroud)
结果在预期中:
//> res0: Option[(String, String)] = Some((hello,null))
Run Code Online (Sandbox Code Playgroud)
但是,如果我在类型中添加类型注释 b
def f(): String = null
for {
a <- Option("hello")
b: String = f()
} yield (a, b)
Run Code Online (Sandbox Code Playgroud)
然后我得到一个运行时异常:
//> scala.MatchError: (hello,null) (of class scala.Tuple2)
Run Code Online (Sandbox Code Playgroud)
为什么会这样?在第一个例子中是不是b
隐式的类型String
?第二个示例中的显式类型注释会发生什么变化?
(注意,示例在Scala 2.11.4中运行)
我正在转换使用 Spring MVC 控制器实现的代码以使用注释构造型 @Controller。除了一个问题外,一切都很好:
给定一个请求/响应,我如何以编程方式处理基于注释的控制器的请求?
以前,(无论实现如何)我可以调用:
controller.handleRequest(request, response)
Run Code Online (Sandbox Code Playgroud)
注释的等价物是什么?我曾假设会有一些(也许是静态的?)实用程序类:
SpringAnnotationBasedControllerUtils.handleRequest(<? extends @Controller> handlerObject, HttpServletRequest request, HttpServletResponse response);
Run Code Online (Sandbox Code Playgroud)
处理将请求映射到@Controller 构造型允许的动态签名的细节,但我找不到这样的东西。
有什么建议?
(请不要评论为什么这是一个坏主意,或者对于“好的”设计来说应该是不必要的,等等。这是正在维护的代码,必须尽可能非侵入性,因此此时无法选择完全重写。 )
谢谢!
如何选择先前在Oracle中注册的XML模式?
例如,如果我注册了这样的模式:
DBMS_XMLSCHEMA.registerSchema(
SCHEMAURL => 'http://test.com/my-schema.xsd',
SCHEMADOC => '...the xsd...,
...
);
Run Code Online (Sandbox Code Playgroud)
我希望能够重新获得该架构,理想情况是:
select s.schemadoc
from magic_schema_table s
where s.schemaurl = 'http://test.com/my-schema.xsd'
Run Code Online (Sandbox Code Playgroud)
是否存在这种机制?
给定一个 Java 类,如下所示:
class MyClass {
String value;
Map<String,Object> map;
@JsonProperty("value")
public String getValue() {
return value;
}
@JsonProperty("map")
public Map<String,Object> getMap {
return map;
}
}
Run Code Online (Sandbox Code Playgroud)
Jackson 将像这样转换为 JSON:
{
"value": "abc",
"map": {
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
}
Run Code Online (Sandbox Code Playgroud)
我想要的是以map
某种方式“展平”属性,使其内容出现在 JSON 结构的“顶级”,如下所示:
{
"value": "abc",
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Run Code Online (Sandbox Code Playgroud)
这是否可以通过 Jackson 注释的任何组合声明性地实现?
(这是我实际问题的简化,所以我不是在寻找诸如“编写自己的自定义 MyClass 序列化程序”之类的答案。实际上,此类必须在我无法直接控制的场景中使用自定义 ObjectMappers。)
在模板中处理条件内容的首选Lift方法是什么?
作为一个具体的例子,让我们想象一下"添加到我的收藏夹"类型按钮的常见结构.如果不在您的收藏夹中,则可以单击按钮添加它.如果已经在您的收藏夹中,则有一个按钮可将其删除.像这样的东西:
<div class="lift:MySnippet">
<!-- other stuff -->
<div class="favorite">
<form id="doFavorite" class="lift:MySnippet.favorite?form=post">
<input type="submit" value="Add to Favorites" />
</form>
<form id="doUnfavorite" class="lift:MySnippet.unfavorite?form=post">
<input type="submit" value="Remove from favorites" />
</form>
</div>
<!-- other stuff -->
</div>
Run Code Online (Sandbox Code Playgroud)
我没有看到片段中的明显方式(通过绑定或CSS变换器)根据适当的"favited"状态有条件地保留一个表单与另一个表单.
来自Java/SpringMVC/JSP背景,这将通过一个简单的<c:choose>
声明来解决,但是我花了很多时间试图解决这个问题,我只能假设我完全倒退了......
提前谢谢,提升大师!