私有静态方法中的静态final String是否在调用时实例化一个新对象?
private static String Test() {
final String foo = "string literal";
return foo;
}
Run Code Online (Sandbox Code Playgroud)
或者编译器是否知道方法中只有一个字符串文字?或者我应该将其设为私有静态最终类字段?这具有通过在类周围扩展代码来降低可读性的效果.
我有一个提供文件(图像,PDF等的控制器):
@Controller
public class FileController {
@ResponseBody
@RequestMapping("/{filename}")
public Object download(@PathVariable String filename) throws Exception {
returns MyFile.findFile(filename);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我请求带有以下Accept标头的文件,则会得到406:
Run Code Online (Sandbox Code Playgroud)Request URL: http://localhost:8080/files/thmb_AA039258_204255d0.png Request Method:GET Status Code:406 Not Acceptable Request Headers Accept:*/*
如果我请求带有以下Accept标头的文件,则得到200:
Run Code Online (Sandbox Code Playgroud)URL: http://localhost:8080/files/thmb_AA039258_204255d0.png Request Method: GET Status Code:200 OK Request Headers Accept: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
这是我的spring-mvc上下文中的唯一视图解析器:
<bean class="org.springframework.web.servlet.view.UrlBasedViewResolver" id="tilesViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
无论如何,有没有配置spring mvc忽略Accept标头?我已经看到了使用ContentNegotiatingViewResolver进行此操作的示例,但仅用于处理xml和json。
我继承了一个大量使用FilterChain的Struts 1应用程序,我不明白这个极其模糊的代码的好处.
"在Servlet API中,当您想要控制,预处理和/或后处理特定请求时,通常会使用Servlet.但是当您想根据特定条件过滤/修改常见请求和/或响应时,过滤器就更多了适当."
我的应用中的每个请求都基于特定条件,例如商家ID或搜索字词.但似乎将请求放在一整套内容中,这些内容完全隐藏了开发人员试图追踪错误原因的内容,这很可怕.
当我单击HTML表单上的提交按钮时,将调用与该按钮相关的功能并完成其工作.完成工作后,会发送邮件通知,这会消耗太多时间.之后,在同一HTML页面上显示确认消息(不使用Ajax;即刷新页面).
我希望避免让用户在发送邮件的等待期间多次混淆地点击提交按钮.所以我想我应该在按下一次后禁用按钮.
我怎样才能做到这一点?
在没有禁用按钮的情况下,您能否建议任何其他技术来实现这一目标?
如果你的控制器使用服务执行逻辑,而DAO可能会抛出不可恢复的异常,那么处理这些方法调用的最佳做法是什么?
目前我正在研究的应用程序有非常冗长的尝试捕获方法,只是错误的错误消息,这似乎不是非常强大,我认为这个代码闻起来,是否有任何cookie切割器最佳实践处理这个春天 - MVC?
在我的Scala 2.8程序中,我使用joda-time及其scala-time包装器.我有2个DateTime值,一个用于日期(零时间字段),一个用于时间(零日期字段)(分离的原因是存储架构).
如何从源对中设置日期和时间部分的另一个DateTime值?
我在Play中使用的模型如下:
package models;
import java.util.*;
import javax.persistence.*;
import play.db.jpa.*;
@Entity
public class User extends Model {
public String email;
public String password;
public String fullname;
public boolean isAdmin;
public User(String email, String password, String fullname) {
this.email = email;
this.password = password;
this.fullname = fullname;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,由Play创建的表格!字段按字母顺序排序如下:
id
email
fullname
isAdmin
password
Run Code Online (Sandbox Code Playgroud)
有没有办法让它按正确的顺序排列?
我有一个类来映射一个使用休眠的表。有一些变量我想忽略以用于映射以用作常量。我想从属性加载常量值,所以我这样编码:
@Transient
@Value("${something.value}")
private int MY_VALUE;
Run Code Online (Sandbox Code Playgroud)
但是,的值MY_VALUE
始终设置为 0。我不能将 @Transient 注释与 @Value 注释一起使用吗?还是我错过了其他东西?
java spring hibernate spring-annotations hibernate-annotations
我有Spring 3.1.1.jar和Tomcat 6.0.当我尝试运行我的简单的一个bean应用程序(它只有一个hello world stmt)时,我得到以下异常.
May 25, 2012 6:58:51 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/jdk1.7.0/jre/lib/i386/server:/usr/java/jdk1.7.0/jre/lib/i386:/usr/java/jdk1.7.0/jre/../lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/client:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386::/usr/java/packages/lib/i386:/lib:/usr/lib
May 25, 2012 6:58:51 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:CMWP' did not find a matching property.
May 25, 2012 6:58:51 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
May 25, 2012 6:58:51 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 886 ms …
Run Code Online (Sandbox Code Playgroud)