我是春天新手,不知道如何继续我的要求。
我的要求如下:
我使用spring和tiles创建了web应用程序。
我需要将xml传递给Web应用程序,我通过在url中发送xml来尝试它。
Example:
http://domain-name/SpringExample/welcome.htm?requestXml=”my xml string………..
但问题是xml非常大,因此应用程序不接受完整的字符串。
因此,我的计划是使用命令对象(在命令对象中声明一个变量,然后使用此变量在jsp页面中获取此xml) 但我不确定如何使用它,我用谷歌搜索但只能发现命令对象是在Web应用程序本身中创建和填充的,即在一个页面中创建并发送给其他人。
但对我来说,我需要从外部客户端发送它。从客户端,我需要使用命令对象将此大型xml请求发送到我的Spring Web应用程序。 我不确定如何从客户端调用它,以及如何在Web应用程序中读取它。
感谢任何帮助。
提前致谢
详细信息:
我有单个弹簧瓷砖网页应用程序。我的客户端是一个简单的java应用程序,它将调用此spring应用程序并向其发送xml字符串 我在某处看到,在这种情况下,我需要使用命令对象将我的数据传递给Web应用程序。
Spring Web应用程序
@Controller
@RequestMapping("/welcome.htm")
@SessionAttributes("requestObj")
public class WelcomeController {
@RequestMapping(value="requestObj", method = RequestMethod.GET)
public String redirect(@RequestParam("requestObj") SampleClass requestObj, ModelMap model)
{
Model.addAttribute("reqXml", requestObj.getXmlString());
return "welcome"; //returns to the jsp page
}
客户端:
String url = "http://localhost/SpringTilesWebApp/welcome.htm";
String finalURL = url + "?" + "requestObj=" + requestObj;
Runtime.getRuntime().exec
("rundll32 url.dll,FileProtocolHandler " + finalURL);
我真的不确定我是否朝着正确的方向前进,请建议我的方式......
答案 0 :(得分:1)
为什么你甚至试图通过GET发送它?顾名思义,在尝试获取资源时必须使用HTTP GET方法。
您必须使用POST方法(或PUT)发送xml文档。例如,您可以将其设置为隐藏输入字段。
你能详细点一下吗? 谁是客户?它只是一个弹簧mvc应用程序或解耦(前端客户端的后端)?
答案 1 :(得分:0)
您应该对服务器端应用使用发布请求。您可以使用apache httpclient工具。例如:
String url = "http://localhost/SpringTilesWebApp/welcome.htm";
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
List<NameValuePair> urlParameters = new ArrayList<NameValuePair>();
urlParameters.add(new BasicNameValuePair("requestObj", requestObj));
post.setEntity(new UrlEncodedFormEntity(urlParameters));
HttpResponse response = client.execute(post);
//read and process response
在弹簧mvc侧,您可以使用
注释控制器方法 @RequestMapping(method = RequestMethod.POST)
public String redirect(@RequestParam("requestObj") SampleClass requestObj,
ModelMap model)
您现在可以使用requestObj。
您正在谈论的命令对象是什么?您是在谈论命令设计模式还是与您正在使用的技术/ fw相关?