我正在尝试将来自角度4代码的http发布数据发送到struts动作。正在调用Struts操作,但无法接收数据。给我一个错误,例如“
java.lang.ClassCastException:java.lang.Integer无法转换为java.lang.String”
建议将有很大帮助
import { Component, OnInit } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/toPromise';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-root',
template: '<h1>Dukes</h1>',
// templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = "here beta";
dukes = [{ name: "offline", age: 2 }];
data = {
title: 'foo',
body: 'bar',
userId: 1
};
headers: Headers = new Headers({ 'Content-Type': 'application/json' });
options: RequestOptions = new RequestOptions({ headers: this.headers });
constructor(private http: Http) { }
ngOnInit() {
let options = new RequestOptions();
options.headers = new Headers();
options.headers.append('Content-Type', 'application/json');
const req = this.http.post('http://localhost:8080/SampleProject/getTutorial', this.data, options)
.subscribe(
res => {
console.log(res);
},
err => {
console.log("Error occured");
}
);
支柱行动课是
public class SampleAction {
private String data;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public int execute()
{
try{
actorSeqID = 3;
System.out.println(data+"--");
}catch(Exception e){
e.printStackTrace();
}
return "success";
}
如果要以data
字符串形式获取,则应尝试如下操作:
import { Component, OnInit } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/toPromise';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-root',
template: '<h1>Dukes</h1>',
// templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = "here beta";
dukes = [{ name: "offline", age: 2 }];
data = "data=\"{title: 'foo',body: 'bar',userId: 1};\"";
headers: Headers = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' });
options: RequestOptions = new RequestOptions({ headers: this.headers });
constructor(private http: Http) { }
ngOnInit() {
let options = new RequestOptions();
options.headers = new Headers();
options.headers.append('Content-Type', 'application/x-www-form-urlencoded');
const req = this.http.post('http://localhost:8080/SampleProject/getTutorial', this.data, options)
.subscribe(
res => {
console.log(res);
},
err => {
console.log("Error occured");
}
);
但我认为您想通过json将它们全部设置为不同的动作属性,如果是,请定义的setter
title
,body
然后userId
在您的动作中继续使用Struts JSON插件-
JSON拦截器
import { Component, OnInit } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/toPromise';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'app-root',
template: '<h1>Dukes</h1>',
// templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = "here beta";
dukes = [{ name: "offline", age: 2 }];
data = {
"title": "foo",
"body": "bar",
"userId": 1
};
headers: Headers = new Headers({ 'Content-Type': 'application/json' });
options: RequestOptions = new RequestOptions({ headers: this.headers });
constructor(private http: Http) { }
ngOnInit() {
let options = new RequestOptions();
options.headers = new Headers();
options.headers.append('Content-Type', 'application/json');
const req = this.http.post('http://localhost:8080/SampleProject/getTutorial', JSON.stringify(this.data)/*CONVERTS DATA TO STRING*/, options)
.subscribe(
res => {
console.log(res);
},
err => {
console.log("Error occured");
}
);
public class SampleAction {
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
private String body;
public String getBody() {
return body;
}
public void setBody(String body) {
this.body= body;
}
private int userId;
public String getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId= userId;
}
public int execute()
{
try{
actorSeqID = 3;
System.out.println(data+"--");
}catch(Exception e){
e.printStackTrace();
}
return actorSeqID;
}
<package name="default" namespace="/" extends="struts-default,json-default">
<action name="getTutorial" method="execute" class="SampleAction">
<interceptor-ref name="json"></interceptor-ref>
</action>
</package>
问题内容: 我正在尝试为请求和响应应用程序创建桌面客户端。 我能够轻松地执行GET请求。但是我想知道是否有人可以帮助我确定如何进行JSON请求和响应。并将其解析为字符串,从那里我可以锻炼如何将其全部切开 问题答案: Json.net在.net世界中无处不在。
问题内容: 我知道这是经常问到的问题,但是我遍及整个Internet来查找我用来从AS3向PHP发送数据和从PHP接收数据的代码所犯的错误,反之亦然。你能找到错误吗?这是我的代码: AS3: [domain] /test.php中的PHP: 感谢您的回答。 问题答案: 您的AS代码似乎正确。因此问题可能出在PHP中。请首先使用以下PHP文件进行测试: 然后,这应该让您的电影跟踪。然后,您应该调试P
问题内容: 我正在使用套接字连接我的Android应用程序(客户端)和Java后端服务器。每次与服务器通信时,我都希望从客户端发送两个数据变量。 1)某种消息(由用户通过界面定义) 2)消息的语言(由用户通过界面定义) 我该如何发送这些消息,以便服务器将每个消息解释为一个单独的实体? 在读取了服务器端的数据并做出了适当的结论之后,我想向客户端返回一条消息。(我想我会没事的) 因此,我的两个问题是如
http://Socket.io允许你触发或响应自定义的事件,除了connect,message,disconnect这些事件的名字不能使用之外,你可以触发任何自定义的事件名称。 服务器端 // 注意,io(<端口号>) 将为你创建一个http服务。 var io = require('socket.io')(80); io.on('connection', function (socket)
问题内容: 我是Android开发的新手,我想开发一个使用蓝牙发送和接收文本的应用程序。从逻辑上讲,我已经获得了有关发送文本的所有信息,但是当我尝试在手机中对其进行测试时,看不到该界面。 这是代码 UUID.fromString(“00001101-0000-1000-8000-00805f9b34fb”); mmSocket = mmDevice.createRfcommSocketToServ