我使用spring 3.2 mock mvc来测试我的控制器.我的代码是
@Autowired
private Client client;
@RequestMapping(value = "/user", method = RequestMethod.GET)
public String initUserSearchForm(ModelMap modelMap) {
User user = new User();
modelMap.addAttribute("User", user);
return "user";
}
@RequestMapping(value = "/byName", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public
@ResponseBody
String getUserByName(@RequestParam("firstName") String firstName,
@RequestParam("lastName") String lastName, @ModelAttribute("userClientObject") UserClient userClient) {
return client.getUserByName(userClient, firstName, lastName);
}
Run Code Online (Sandbox Code Playgroud)
我写了以下测试:
@Test
public void testGetUserByName() throws Exception {
String firstName = "Jack";
String lastName = "s";
this.userClientObject = client.createClient();
mockMvc.perform(get("/byName")
.sessionAttr("userClientObject", this.userClientObject)
.param("firstName", firstName)
.param("lastName", lastName) …Run Code Online (Sandbox Code Playgroud) 我使用了Intellij Idea 12社区版.我试图通过创建测试用例为我的类创建测试用例.当我运行我的测试用例时,它说
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:44)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:195)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 25 more
Run Code Online (Sandbox Code Playgroud)
我如何在Intellij中运行测试用例.我将junit4.11 jar文件包含在我的模块中
我在用"".我使用表单提交.当我没有给表单赋值时意味着它带有""空字符串.是否可以设置空值而不是""(空)
在此先感谢您的帮助.可能这是一个愚蠢的问题.我是新手.
我使用Spring 3.2并尝试使用ajax post请求提交json对象数组.如果这是相关的,我逃脱了所有特殊字符.
我的HTTP状态为415.
我的控制器是:
@RequestMapping(value = "/save-profile", method = RequestMethod.POST,consumes="application/json")
public @ResponseBody String saveProfileJson(@RequestBody String[] profileCheckedValues){
System.out.println(profileCheckedValues.length);
return "success";
}
Run Code Online (Sandbox Code Playgroud)
jquery是:
jQuery("#save").click(function () {
var profileCheckedValues = [];
jQuery.each(jQuery(".jsonCheck:checked"), function () {
profileCheckedValues.push($(this).val());
});
if (profileCheckedValues.length != 0) {
jQuery("body").addClass("loading");
jQuery.ajax({
type: "POST",
contentType: "application/json",
url: contextPath + "/sample/save-profile",
data: "profileCheckedValues="+escape(profileCheckedValues),
dataType: 'json',
timeout: 600000,
success: function (data) {
jQuery('body').removeClass("loading");
},
error: function (e) {
console.log("ERROR: ", e);
jQuery('body').removeClass("loading");
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
我发布的数组中的一个对象的示例是以下json:
{
"id": "534213341",
"name": "Jack …Run Code Online (Sandbox Code Playgroud) 我使用的是Spring 3.2.0 MVC.在那里我必须将一个对象存储到会话中.目前我正在使用HttpSession set和get属性来存储和检索值.
它只返回String而不是Object.我想在我尝试使用@SessionAttribute时在会话中设置对象但我无法检索会话对象
@RequestMapping(value = "/sample-login", method = RequestMethod.POST)
public String getLoginClient(HttpServletRequest request,ModelMap modelMap) {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
User user = sample.createClient(userName, password);
modelMap.addAttribute("userObject", user);
return "user";
}
@RequestMapping(value = "/user-byName", method = RequestMethod.GET)
public
@ResponseBody
String getUserByName(HttpServletRequest request,@ModelAttribute User user) {
String fas= user.toString();
return fas;
}
Run Code Online (Sandbox Code Playgroud)
两种方法都在同一个控制器中.我如何使用它来检索对象?
我正在使用jquery ajax fileupload.该文件正确上传,但我得到了错误
TypeError: jQuery.handleError is not a function
[Break On This Error]
jQuery.handleError(s, xml, status, e);
Run Code Online (Sandbox Code Playgroud)
使用jQuery版本1.7.2和代码是
jQuery.ajaxFileUpload
(
{
url:'<?php echo $currenturl.'&fileupload=enable';?>',
secureuri:false,
fileElementId:'fileToUpload',
dataType: 'json',
data:{'image_desc':image_desc,'gallery_id':curr_time_stamp},
success: function (data, status)
{
if(typeof(data.error) != 'undefined')
{
if(data.error != '')
{
alert(data.error);
}else
{
alert(data.msg);
showprofilepicture();
}
}
}
}
)
Run Code Online (Sandbox Code Playgroud)
函数showprofilepicture()也没有被执行.
在延迟链式自适应Paypal中,当我使用付费密钥执行付款时,主要付款成功发送,它显示如下错误
我如何授权从主要接收者发送金额到二级
PayPal API Error
responseEnvelope.timestamp: 2012-10-31T01:12:05.386-07:00
responseEnvelope.ack: Failure
responseEnvelope.correlationId: fd2c71e75c133
responseEnvelope.build: 3988550
error(0).errorId: 550001
error(0).domain: PLATFORM
error(0).subdomain: Application
error(0).severity: Error
error(0).category: Application
error(0).message: This payment request must be authorized by the sender
Run Code Online (Sandbox Code Playgroud) 我对Overriding Constructors非常困惑.构造函数不能被覆盖是我在谷歌搜索它时得到的结果我的问题是
public class constructorOverridden {
public static void main(String args[]) {
Sub sub = new Sub();
sub.test();
}
}
class Super {
Super() {
System.out.println("In Super constructor");
test();
}
void test() {
System.out.println("In Super.test()");
}
}
class Sub extends Super {
Sub() {
System.out.println("In Sub constructor");
}
void test() { // overrides test() in Super
System.out.println("In Sub.test()");
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到了结果
In Super constructor
In Sub.test()
In Sub constructor
In Sub.test()
Run Code Online (Sandbox Code Playgroud)
请注意,子类中的测试方法已执行.是否显示超级构造函数被覆盖.是否正确?
我学习jsp.我在jsp中的isThreadSafe属性中有很大的困惑.默认情况下,Jsp不是线程安全的isThreadSafe= true
如果我们设置isThreadSafe=false意味着JSP引擎确保一次只有一个线程正在执行您的JSP.
我有真或假的混淆.isThreadSafe = false意味着只有muliple线程可以通过isThreadSafe访问jsp
isThreadSafe是什么意思?
The isThreadSafe option marks a page as being thread-safe.
By default, all JSPs are considered thread-safe. If you set the isThreadSafe option to false, the JSP engine makes sure that only one thread at a time is executing your JSP.
The following page directive sets the isThreadSafe option to false:
<%@ page isThreadSafe="false" %>
Run Code Online (Sandbox Code Playgroud)
线程安全意味着多个线程无法一次访问jsp页面是否正确?
我正在使用 Twitter Stream API 来获取用户的推文。我有用户 ID 列表 我如何从 TwitterStream API 获取推文列表。我分析了以下示例
public class TwitterStreamAPI {
public static void main(String[] args) {
ConfigurationBuilder cb = new ConfigurationBuilder();
cb.setDebugEnabled(true);
cb.setOAuthConsumerKey("xxxx");
cb.setOAuthConsumerSecret("xxx");
cb.setOAuthAccessToken("xxx");
cb.setOAuthAccessTokenSecret("xxx");
TwitterStream twitterStream = new TwitterStreamFactory(cb.build()).getInstance();
UserStreamListener listener = new UserStreamListener() {
@Override
public void onStatus(Status status) {
System.out.println("onStatus @" + status.getUser().getScreenName() + " - " + status.getText());
}
@Override
public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {
//System.out.println("Got a status deletion notice id:" + statusDeletionNotice.getStatusId());
}
@Override
public void onDeletionNotice(long directMessageId, long …Run Code Online (Sandbox Code Playgroud)