Java 在struts2操作类中获取json数据null
//我正在使用struts2框架开发一个web应用程序。我是json新手,尝试通过ajax将json数据发送到action类,但在action类中获取空值// 步骤1: //实现了json3.min.js//Java 在struts2操作类中获取json数据null,java,ajax,json,spring,struts2,Java,Ajax,Json,Spring,Struts2,//我正在使用struts2框架开发一个web应用程序。我是json新手,尝试通过ajax将json数据发送到action类,但在action类中获取空值// 步骤1: //实现了json3.min.js// var iprodReportsViewReportSqlQueryDetails={ rtemplateSqlquery : sqlQuery, jdbcDriverUrl : jdbcDriverUrlG, jdbcDriverClassname : jdbcD
var iprodReportsViewReportSqlQueryDetails={
rtemplateSqlquery : sqlQuery,
jdbcDriverUrl : jdbcDriverUrlG,
jdbcDriverClassname : jdbcDriverClassnameG,
databaseInstanceName : databaseInstanceNameG,
databaseServerName : databaseServerUsernameG,
databaseServerPassword : databaseServerPasswordG,
};
$.ajax({
type : "POST",
url : 'validateBuiltSqlQueryAction',
cache : false,
async : false,
dataType : 'json',
contentType:"application/json;charset=utf-8",
data : JSON.stringify(iprodReportsViewReportSqlQueryDetails),
success : function(data) {
// we have the response
alert("successs");
},
error : function(e) {
alert("error occured");
}
});
/*********This is the action class where the json data is to be received***********/
/* We have used gson for deserialization. */
public class IprodReportsSqlQueryMasterAction extends ActionSupport {
protected String rtemplateSqlquery;
protected String jdbcDriverClassname;
protected String jdbcDriverUrl;
protected String databaseInstanceName;
protected String databaseServerName;
protected String databaseServerPassword;
protected String data;
public String validateSqlQuery() {
Gson gs=new Gson();
System.out.println("Data received:"+ getData());
IprodReportsViewReportSqlQueryDetails iprodReportsViewReportSqlQueryDetailsObject=gs.fromJson(data, IprodReportsViewReportSqlQueryDetails.class);
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getRtemplateSqlquery());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getJdbcDriverClassname());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getJdbcDriverUrl());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getDatabaseInstanceName());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getDatabaseServerName());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getDatabaseServerPassword());
return SUCCESS;
}
public String getRtemplateSqlquery()
{
return rtemplateSqlquery;
}
public void setRtemplateSqlquery(String rtemplateSqlquery)
{
this.rtemplateSqlquery = rtemplateSqlquery;
}
public String getJdbcDriverClassname()
{
return jdbcDriverClassname;
}
public void setJdbcDriverClassname(String jdbcDriverClassname)
{
this.jdbcDriverClassname = jdbcDriverClassname;
}
public String getJdbcDriverUrl()
{
return jdbcDriverUrl;
}
public void setJdbcDriverUrl(String jdbcDriverUrl)
{
this.jdbcDriverUrl = jdbcDriverUrl;
}
public String getDatabaseInstanceName()
{
return databaseInstanceName;
}
public void setDatabaseInstanceName(String databaseInstanceName)
{
this.databaseInstanceName = databaseInstanceName;
}
public String getDatabaseServerName()
{
return databaseServerName;
}
public void setDatabaseServerName(String databaseServerName)
{
this.databaseServerName = databaseServerName;
}
public String getDatabaseServerPassword()
{
return databaseServerPassword;
}
public void setDatabaseServerPassword(String databaseServerPassword)
{
this.databaseServerPassword = databaseServerPassword;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
/*****struts.xml***************//
<package name="json-default-package" extends="json-default">
<result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
</result-types>
<interceptors>
<interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>
</interceptors>
</package>
<package extends="json-default-package" name="validateSqlQuery" namespace="/">
<action class="com.id4.iprod.reports.IprodReportsSqlQueryMasterAction" method="validateSqlQuery" name="validateBuiltSqlQueryAction">
<interceptor-ref name="json">
<param name="contentType">application/JSON</param>
</interceptor-ref>
<result name="success" type="json"></result>
</action>
</package>
/***********************************************/
/****bean object class IprodReportsViewReportSqlQueryDetails***** //
public class IprodReportsViewReportSqlQueryDetails implements Serializable
{
protected String rtemplateSqlquery;
protected String jdbcDriverClassname;
protected String jdbcDriverUrl;
protected String databaseInstanceName;
protected String databaseServerName;
protected String databaseServerPassword;
public IprodReportsViewReportSqlQueryDetails()
{
}
public String getRtemplateSqlquery()
{
return rtemplateSqlquery;
}
public void setRtemplateSqlquery(String rtemplateSqlquery)
{
this.rtemplateSqlquery = rtemplateSqlquery;
}
public String getJdbcDriverClassname()
{
return jdbcDriverClassname;
}
public void setJdbcDriverClassname(String jdbcDriverClassname)
{
this.jdbcDriverClassname = jdbcDriverClassname;
}
public String getJdbcDriverUrl()
{
return jdbcDriverUrl;
}
public void setJdbcDriverUrl(String jdbcDriverUrl)
{
this.jdbcDriverUrl = jdbcDriverUrl;
}
public String getDatabaseInstanceName()
{
return databaseInstanceName;
}
public void setDatabaseInstanceName(String databaseInstanceName)
{
this.databaseInstanceName = databaseInstanceName;
}
public String getDatabaseServerName()
{
return databaseServerName;
}
public void setDatabaseServerName(String databaseServerName)
{
this.databaseServerName = databaseServerName;
}
public String getDatabaseServerPassword()
{
return databaseServerPassword;
}
public void setDatabaseServerPassword(String databaseServerPassword)
{
this.databaseServerPassword = databaseServerPassword;
}
public boolean equals(Object _other)
{
if (_other == null) {
return false;
}
if (_other == this) {
return true;
}
if (!(_other instanceof IprodReportsViewReportSqlQueryDetails)) {
return false;
}
final IprodReportsViewReportSqlQueryDetails _cast = (IprodReportsViewReportSqlQueryDetails) _other;
if (rtemplateSqlquery == null ? _cast.rtemplateSqlquery != rtemplateSqlquery : !rtemplateSqlquery.equals( _cast.rtemplateSqlquery )) {
return false;
}
if (jdbcDriverClassname == null ? _cast.jdbcDriverClassname != jdbcDriverClassname : !jdbcDriverClassname.equals( _cast.jdbcDriverClassname )) {
return false;
}
if (jdbcDriverUrl == null ? _cast.jdbcDriverUrl != jdbcDriverUrl : !jdbcDriverUrl.equals( _cast.jdbcDriverUrl )) {
return false;
}
if (databaseInstanceName == null ? _cast.databaseInstanceName != databaseInstanceName : !databaseInstanceName.equals( _cast.databaseInstanceName )) {
return false;
}
if (databaseServerName == null ? _cast.databaseServerName != databaseServerName : !databaseServerName.equals( _cast.databaseServerName )) {
return false;
}
if (databaseServerPassword == null ? _cast.databaseServerPassword != databaseServerPassword : !databaseServerPassword.equals( _cast.databaseServerPassword )) {
return false;
}
return true;
}
public int hashCode()
{
int _hashCode = 0;
if (rtemplateSqlquery != null) {
_hashCode = 29 * _hashCode + rtemplateSqlquery.hashCode();
}
if (jdbcDriverClassname != null) {
_hashCode = 29 * _hashCode + jdbcDriverClassname.hashCode();
}
if (jdbcDriverUrl != null) {
_hashCode = 29 * _hashCode + jdbcDriverUrl.hashCode();
}
if (databaseInstanceName != null) {
_hashCode = 29 * _hashCode + databaseInstanceName.hashCode();
}
if (databaseServerName != null) {
_hashCode = 29 * _hashCode + databaseServerName.hashCode();
}
if (databaseServerPassword != null) {
_hashCode = 29 * _hashCode + databaseServerPassword.hashCode();
}
return _hashCode;
}
public String toString()
{
StringBuffer ret = new StringBuffer();
ret.append( "com.id4.iprod.reports.dto.IprodReportsViewReportSqlQueryDetails: " );
ret.append( "rtemplateSqlquery=" + rtemplateSqlquery );
ret.append( ", jdbcDriverClassname=" + jdbcDriverClassname );
ret.append( ", jdbcDriverUrl=" + jdbcDriverUrl );
ret.append( ", databaseInstanceName=" + databaseInstanceName );
ret.append( ", databaseServerName=" + databaseServerName );
ret.append( ", databaseServerPassword=" + databaseServerPassword );
return ret.toString();
}
}
var iprodReportsViewReportSqlQueryDetails={
rtemplateSqlquery:sqlQuery,
jdbcdriverrurl:jdbcdriverrurlg,
jdbcDriverClassname:jdbcDriverClassname,
databaseInstanceName:databaseInstanceName,
databaseServerName:databaseServerUsernameG,
databaseServerPassword:databaseServerPasswordG,
};
$.ajax({
类型:“POST”,
url:“validateBuiltSqlQueryAction”,
cache:false,
async:false,
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
数据:JSON.stringify(iprodReportsViewReportSqlQueryDetails),
成功:功能(数据){
//我们得到了答复
警报(“成功”);
},
错误:函数(e){
警报(“发生错误”);
}
});
/*********这是接收json数据的操作类***********/
/*我们使用gson进行反序列化*/
公共类IprodReportsSqlQueryMasterAction扩展了ActionSupport{
受保护的字符串rtemplateSqlquery;
受保护字符串jdbcDriverClassname;
受保护字符串jdbcDriverUrl;
受保护的字符串数据库InstanceName;
受保护字符串数据库服务器名称;
受保护的字符串数据库服务器密码;
受保护的字符串数据;
公共字符串validateSqlQuery(){
Gson gs=新的Gson();
System.out.println(“接收到的数据:+getData());
IprodReportsViewReportSqlQueryDetails iprodReportsViewReportSqlQueryDetailsObject=gs.fromJson(数据,IprodReportsViewReportSqlQueryDetails.class);
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getRtemplateSqlquery());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getJdbcDriverClassname());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getJdbcDriverUrl());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getDatabaseInstanceName());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getDatabaseServerName());
System.out.println(iprodReportsViewReportSqlQueryDetailsObject.getDatabaseServerPassword());
回归成功;
}
公共字符串getRtemplateSqlquery()
{
返回rtemplateSqlquery;
}
公共void setRtemplateSqlquery(字符串rtemplateSqlquery)
{
this.rtemplateSqlquery=rtemplateSqlquery;
}
公共字符串getJdbcDriverClassname()
{
返回jdbcDriverClassname;
}
public void setJdbcDriverClassname(字符串jdbcDriverClassname)
{
this.jdbdriverclassname=jdbdriverclassname;
}
公共字符串getjdbcdriverrl()
{
返回jdbcDriverUrl;
}
public void setjdbcdriverrurl(字符串jdbcdriverrurl)
{
this.jdbdriverrurl=jdbdriverrurl;
}
公共字符串getDatabaseInstanceName()
{
返回数据库InstanceName;
}
public void setDatabaseInstanceName(字符串databaseInstanceName)
{
this.databaseInstanceName=databaseInstanceName;
}
公共字符串getDatabaseServerName()
{
返回databaseServerName;
}
public void setDatabaseServerName(字符串databaseServerName)
{
this.databaseServerName=databaseServerName;
}
公共字符串getDatabaseServerPassword()
{
返回数据库服务器密码;
}
public void setDatabaseServerPassword(字符串databaseServerPassword)
{
this.databaseServerPassword=databaseServerPassword;
}
公共字符串getData(){
返回数据;
}
公共void setData(字符串数据){
这个数据=数据;
}
}
/*****struts.xml***************//
应用程序/JSON
/***********************************************/
/****bean对象类IprodReportsViewReportSqlQueryDetails****//
公共类IprodReportsViewReportSqlQueryDetails实现可序列化
{
受保护的字符串rtemplateSqlquery;
受保护字符串jdbcDriverClassname;
受保护字符串jdbcDriverUrl;
受保护的字符串数据库InstanceName;
受保护字符串数据库服务器名称;
受保护的字符串数据库服务器密码;
公共IprodReportsViewReportSqlQueryDetails()
{
}
公共字符串getRtemplateSqlquery()
{
返回rtemplateSqlquery;
}
公共void setRtemplateSqlquery(字符串rtemplateSqlquery)
{
this.rtemplateSqlquery=rtemplateSqlquery;
}
公共字符串getJdbcDriverClassname()
{
返回jdbcDriverClassname;
}
public void setJdbcDriverClassname(字符串jdbcDriverClassname)
{
this.jdbdriverclassname=jdbdriverclassname;
}
公共字符串getjdbcdriverrl()
{
返回jdbcDriverUrl;
}
public void setjdbcdriverrurl(字符串jdbcdriverrurl)
{
this.jdbdriverrurl=jdbdriverrurl;
}
公共字符串getDatabaseInstanceName()
{
返回数据库InstanceName;
}
public void setDatabaseInstanceName(字符串databaseInstanceName)
{
this.databaseInstanceName=databaseInstanceName;
}
公共字符串getDatabaseServerName()
{
返回databaseServerName;
}
public void setDatabaseServerName(字符串databaseServerName)
{
this.databaseServerName=databaseServerName;
}
公共字符串getDatabaseServerPassword()
{
返回数据库服务器密码;
}
public void setDatabaseServerPassword(字符串databaseServerP
$.ajax({
type : "POST",
url : 'validateBuiltSqlQueryAction',
cache : false,
async : false,
data : "data="+JSON.stringify(iprodReportsViewReportSqlQueryDetails),
dataType : 'json',
success : function(data) {
// we have the response
alert("successs");
},
failure: function(result){
console.log("FAILED");
console.log(result);
}
});
<action class="com.id4.iprod.reports.IprodReportsSqlQueryMasterAction" method="validateSqlQuery" name="validateBuiltSqlQueryAction">
<result name="success" type="json"></result>
</action>