小编Nim*_*sky的帖子

创建新的modelandview或将模型作为方法参数传递有什么区别

我养成了这样做的习惯,所以在我的单元测试中我可以检查添加到模型中的内容:

@RequestMapping(value = "/Foo", method = RequestMethod.GET)
public ModelAndView goHome()
{
  ModelandView mav = new ModelAndView("foobar.jsp");
  mav.addObject("bar", new Bar());
  return mav;
}
Run Code Online (Sandbox Code Playgroud)

这是否更好:

@RequestMapping(value = "/Foo", method = RequestMethod.GET)
public String goHome(final Model model)
{
  model.addAttribute("bar", new Bar());
  return "foobar.jsp";
}
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

5
推荐指数
1
解决办法
2711
查看次数

Map <String,Map <String,Boolean >> myMap = new HashMap <String,HashMap <String,Boolean >>();

为什么这不适用于java,但确实如此

Map<String, Map<String, Boolean>> myMap = new HashMap<String,Map<String,Boolean>>();
Run Code Online (Sandbox Code Playgroud)

只是为了澄清下面对嵌套HashMap的更改显示了编译器错误,而上面并没有; 用地图(不是hashmap)

Map<String, Map<String, Boolean>> myMap = new HashMap<String,HashMap<String,Boolean>>();
Run Code Online (Sandbox Code Playgroud)

java nested hashmap map

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

Spring错误:BeanNotOfRequiredTypeException

我的控制器包含以下注释:

@Resource(name="userService")
private UserDetailsServiceImpl userService;
Run Code Online (Sandbox Code Playgroud)

并且服务本身具有以下内容:

@Service("userService")
@Transactional
public class UserDetailsServiceImpl implements UserDetailsService {

    @Resource(name = "sessionFactory")
    private SessionFactory sessionFactory;
Run Code Online (Sandbox Code Playgroud)

但是我在启动时收到以下错误:

注入资源依赖性失败; 嵌套异常是org.springframework.beans.factory.BeanNotOfRequiredTypeException:名为'userDetailsS​​erviceImpl'的bean必须是[myapp.service.UserDetailsS​​erviceImpl]类型,但实际上是[$ Proxy19]类型

java spring dependency-injection

4
推荐指数
1
解决办法
8649
查看次数

如果您没有引用它,那么Java中的对象会发生什么,例如:myString.concat("that")

String myString = "this";
//string is immutable

myString.concat(" that");
//a new object is created but not assigned to anything

System.out.println(myString); //prints out "this"
Run Code Online (Sandbox Code Playgroud)

我更喜欢编译时错误 - 为什么不是这种情况?在没有提供返回类型的情况下调用它时,同样的问题可以应用于具有返回类型的任何方法.

public myObject doStuff(...whatever){
 //define my method
 return anObject;
}
Run Code Online (Sandbox Code Playgroud)

可以调用而不提供引用/变量来保存返回类型:

MyObject newObject = doStuff(); //works
doStuff(); //works too without assigning return object
Run Code Online (Sandbox Code Playgroud)

java string reference

4
推荐指数
1
解决办法
510
查看次数

在 equals 和 hashcode 方法中使用自动生成的 Hibernate 实体对象的 id

可爱的equals和hashcode,所有的理论都在这里,也在这里

我已经决定在我的许多休眠实体/域对象中使用 equals() 和 hashcode() 中自动生成的 id。

但是,许多网站表示您永远不应该这样做,因为在比较或使用哈希码的过程中第一次将对象持久保存到数据库中的风险。

我的观点是,在大多数用例中,这比更改任何其他字段的可能性要小得多。

单个域对象在首次创建时会生成一次 id,而几乎所有其他字段在正常业务流程中都有机会被更改(甚至可以更改唯一的用户名……)。

在我的许多域对象中,唯一 id 几乎是唯一需要考虑的合适字段(人、地址、宠物、...客户等?组合字段是一个好主意,但从使用自动生成的 id,我认为,不是很好的建议。

我还缺少其他东西吗?

java hibernate equals hashcode effective-java

4
推荐指数
1
解决办法
2196
查看次数

Maven将applicationContext.xml从src/main/resources复制到target/myproject/WEB-INF

目前,默认我认为,它复制到

target/myproject/WEB-INF/classes
Run Code Online (Sandbox Code Playgroud)

因此在部署时不会获取上下文.

另外,我想引用服务器特定的配置文件database.properties,我想把它放在tomcat/conf中,然后在applicationContext.xml中引用它,我该怎么做?

另外(2),我的印象是这是一个相当标准和体面的方式来设置 - 如果我错了,请纠正我.

编辑 服务器特定的配置文件我用户这个

<context:property-placeholder 
      location="file:${catalina.home}/conf/database.properties" 
      ignore-unresolvable="true"
 />
Run Code Online (Sandbox Code Playgroud)

java spring maven applicationcontext

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

Freemarker嵌套列表

这很好用:

<#list myObjects as myObject>
  <tr>
    <td>${myObject.person.surname}</td>
    <td>${myObject.myListOfCountries[0].city.name}</td>
  </tr>
</#list> 
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试创建一个这样的嵌套列表,这不起作用:

<#list myObjects as myObject>
  <tr>
    <td>${myObject.person.surname}</td>
    <#list myObject.myListOfCountries as item>
       <td>${item.city.name</td>
    </#list> 
  </tr>
</#list> 
Run Code Online (Sandbox Code Playgroud)

我收到的错误如下所示:

freemarker.core.ParseException: Encountered "/"
Run Code Online (Sandbox Code Playgroud)

任何导致错误的想法 - 是freemarker中允许的嵌套列表吗?

java freemarker

4
推荐指数
1
解决办法
8919
查看次数

升级到3.2版但邮件似乎已经消失了?

刚刚升级到spring3.2 - 但邮件已经消失了AFAIK.

官方指南中没有提到它.它已经消失了:

哪里消失了

我的pom看起来像这样: soring核心

其他一切对我来说除了缓存管理器,但有一个解释.

java email spring maven

4
推荐指数
1
解决办法
687
查看次数

错误消息=必需的MultipartFile参数'file'不存在

测试一个spring文件上传表单,controlelr签名看起来像这样

@RequestMapping(value = "upload", method = RequestMethod.POST)
@ResponseBody
public void upload(@RequestParam("file") MultipartFile multipartFile) {}
Run Code Online (Sandbox Code Playgroud)

并测试这个

final MockMultipartFile file 
  = new MockMultipartFile("content", "myFile.txt", "text/plain", "hello".getBytes());

MockHttpServletRequestBuilder mockHttpServletRequestBuilder = 
  .fileUpload("/upload/")
  .file(file)
  .accept(MediaType.APPLICATION_JSON);
Run Code Online (Sandbox Code Playgroud)

但我得到上述内容:错误消息=必需的MultipartFile参数'file'不存在

java spring unit-testing spring-mvc-test

4
推荐指数
1
解决办法
6305
查看次数

删除重复项而不覆盖hashCode()

出于企业原因,我无法覆盖hashCode,我必须使用Java 6(但我可以使用番石榴)

什么是最佳/最简单/最快/最有效/ [插入相当于最佳的不确定形容词]机制从Java集合中删除重复的bean?

副本由返回相同值的getter子集定义,例如

pojoA.getVal() == pojoB.getVal() && pojoA.getOtherVal() == pojoB.getOtherVal()
Run Code Online (Sandbox Code Playgroud)

java collections guava

4
推荐指数
1
解决办法
198
查看次数