我試圖從Apache Struts 2中的JSON請求中獲取數據。
我已經使用此URL進行了測試:http://date.jsontest.com/。
在StrutsJsonClientAction.java
文件,行如何在struts2中從JSON請求中獲取數據
System.out.println(result);
打印此控制檯:
{ "time": "12:04:12 PM", "milliseconds_since_epoch": 1431086652240, "date": "05-08-2015"}
我想知道如何表達這個結果result.jsp
今天,我發現有resttemplate可以在spring中使用,我想知道是否有像struts2中的restemplate這樣的工具可以使用?
我目前的解決方案:StrutsJsonClientAction.java
package com.example.action;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
public class StrutsJsonClientAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private final String url="http://date.jsontest.com/";
public String execute() throws Exception {
HttpServletRequest request= ServletActionContext.getRequest();
request.setCharacterEncoding("utf-8");
URL myUrl = new URL(url);
//System.out.println(myUrl.toString());
HttpURLConnection connection = (HttpURLConnection) myUrl.openConnection();
connection.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(),"utf-8"));
String result="";
String temp=null;
while ((temp=reader.readLine())!= null) {
result=result+temp;
}
System.out.println(result);
return SUCCESS;
}
}
文件struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="struts2" extends="struts-default">
<action name="GoToGetApi" class="com.example.action.StrutsJsonClientAction">
<result>/resault.jsp</result>
</action>
</package>
</struts>
像任何其他財產。看到一些S2教程:http://struts.apache.org/docs/tutorials.html。 –
相關並值得一讀:http://stackoverflow.com/a/17149414/1654265 –
JSON請求它不是你的想法,獲取數據是不同的。你可以用其他插件做類似的事情。 –