返回ModelAndView的方式
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ModelAndView list(
@UserAuth UserAuth user,
ModelAndView mav) {
if (!user.isAuthenticated()) {
mav.setViewName("redirect:http://www.test.com/login.jsp");
return mav;
}
mav.setViewName("list");
mav.addObject("articles", listService.getLists());
return mav;
}
Run Code Online (Sandbox Code Playgroud)
返回String的方式
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String list(
@UserAuth UserAuth user,
Model model) {
if (!user.isAuthenticated()) {
return "redirect:http://www.test.com/login.jsp";
}
model.addAttribute("articles", listService.getLists());
return "list";
}
Run Code Online (Sandbox Code Playgroud)
这些工作相同.哪个更好?有什么区别?
我正在使用Google的Preconditions类来验证用户的输入数据.
但我担心使用Preconditions类检查用户输入数据的最佳位置在哪里.
首先,我在Controller中编写了验证检查代码,如下所示:
@Controller
...
public void register(ProductInfo data) {
Preconditions.checkArgument(StringUtils.hasText(data.getName()),
"Empty name parameter.");
productService.register(data);
}
@Service
...
public void register(ProductInfo data) {
productDao.register(data);
}
Run Code Online (Sandbox Code Playgroud)
但我认为registerService层中的方法将使用另一个Controller方法,如下所示:
@Controller
...
public void register(ProductInfo data) {
productService.register(data);
}
public void anotherRegister(ProductInfo data) {
productService.register(data);
}
@Service
...
public void register(ProductInfo data) {
Preconditions.checkArgument(StringUtils.hasText(data.getName()),
"Empty name parameter.");
productDao.register(data);
}
Run Code Online (Sandbox Code Playgroud)
另一方面,服务层的方法将仅用于一个控制器.
我很困惑.哪种方法可以更好地检查控制器或服务中的前提条件?
提前致谢.
我们有一台服务器,偶尔会向我们的用户发送推送.每个用户在Parse中都有自己的频道名称.因为我们的ios和android推送看起来完全不同,我们尝试发送推送两次,一次针对他的频道名称和Android设备,一次针对他的频道名称和ios设备:
$aAndroidPush = array(
"where" => array(
"deviceType" => "Android",
"channels" => array('$in' => array("push_user"))
),
"data" => array(
"action" => "com.android.action",
"alertMessage" => "this is a push",
"t" => "web",
"m" => 0
)
);
$aIOSPush = array(
"where" => array(
"deviceType" => "ios",
"channels" => array('$in' => array("push_user"))
),
"data" => array(
"alert" => "this is a push",
"sound" => "p.mp3",
"t" => "web",
"m" => 0 ,
"badge" => ""
)
);
$aHeaders = array(
"Content-Type: application/json", …Run Code Online (Sandbox Code Playgroud) 我正在制作许多基于ajax调用的Web服务.我为每个dom元素添加了事件监听器.每个事件处理程序都在其中请求ajax调用.顺便说一下,我的源代码越来越脏和复杂.我希望减少样板代码,并使用ajax调用看起来更简单.
我怎样才能有效地做到这一点?
示例代码如下所示:
<a href="javascript:void(0);" class="button1">button1</a>
<a href="javascript:void(0);" class="button2">button2</a>
<a href="javascript:void(0);" class="button3">button3</a>
<a href="javascript:void(0);" class="button4">button4</a>
$('.button1').on('click', function() {
$.ajax({
url: '/api/1/resource1',
data: {
value1: 'value1',
value2: 'value2'
},
success: function (response) {
$('.some_dom1').html(Handlebars.resource({items:response.items}));
}
});
});
$('.button2').on('click', function() {
$.ajax({
url: '/api/1/resource2',
data: {
value1: 'value1',
value2: 'value2'
},
success: function (response) {
$('.some_dom2').html(Handlebars.resource({items:response.items}));
}
});
});
$('.button3').on('click', function() {
$.ajax({
url: '/api/1/resource3',
data: {
value1: 'value1',
value2: 'value2'
},
success: function (response) {
$('.some_dom3').html(Handlebars.resource({items:response.items}));
}
});
});
$('.button4').on('click', function() …Run Code Online (Sandbox Code Playgroud) 我有一个 node.js 应用程序,它支持 React 服务器渲染与内部服务器 API 通信。顺便说一句,应用程序的 RSS 内存正在逐渐增加。
我已经进行了 5 天的故障排除,并且已经检查了堆转储的比较。但是堆是稳定的。只有RSS在增加。
2017-06-29 09:10:00 083: memoryUsage { rss: 107597824, heapTotal: 78532608, heapUsed: 68423584 }
2017-06-29 09:10:00 212: memoryUsage { rss: 107163648, heapTotal: 78532608, heapUsed: 67970768 }
2017-06-29 09:10:00 377: memoryUsage { rss: 106213376, heapTotal: 77484032, heapUsed: 67166800 }
2017-06-29 09:10:00 448: memoryUsage { rss: 106184704, heapTotal: 78532608, heapUsed: 62869512 }
....
....
2017-06-30 15:25:00 144: memoryUsage { rss: 140972032, heapTotal: 78532608, heapUsed: 65703576 }
2017-06-30 15:25:00 379: memoryUsage { rss: …Run Code Online (Sandbox Code Playgroud) 我正在使用restTemplate的一些API.API返回一个类型为整数的键.
但我不确定这个值,所以我想检查密钥是否真的是整数.我认为它可能是一个字符串.
检查值是否真的是整数的最佳方法是什么?
补充:我的意思是某些API可能会返回如下所示的值.{id:10}或{id:"10"}
我想在Delphi中创建一个像多维关联数组的数据结构.
我知道有TObjectDictionary.但是我想用TObjectDictionary制作多维数组是如此困难而且效率不高.
在Delphi中有没有其他好的方法来制作多维关联数组?
controller ×2
ajax ×1
caching ×1
delphi ×1
integer ×1
java ×1
javascript ×1
jquery ×1
memory ×1
node.js ×1
parsing ×1
php ×1
push ×1
rest ×1
service ×1
spring ×1
spring-mvc ×1
validation ×1