在struts中从Angular 2发送和接收http post数据

2024-02-29

我正在尝试将 http post 数据从 Angular 4 代码发送到 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");
      }
      );

struts动作类是

    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 将它们全部设置为操作的不同属性,如果是这样,请定义 settertitle, body and userId在你的行动中并继续Struts JSON 插件 - JSON 拦截器 https://struts.apache.org/docs/json-plugin.html

另一个例子

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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在struts中从Angular 2发送和接收http post数据 的相关文章

  • 如何准确判断 double 是否为整数? [复制]

    这个问题在这里已经有答案了 具体来说 在 Java 中 我如何确定double是一个整数 为了澄清 我想知道如何确定 double 实际上不包含任何分数或小数 我主要关心的是浮点数的性质 我想到的方法 以及我通过谷歌找到的方法 基本上遵循以
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 如何将本机数据库运算符 (postgres ~) 与 JPA 标准生成器一起使用?

    我使用 JPA 2 0 标准构建以下查询 简化 select n from notif n where n message b la 我正在使用 postgresql 数据库 我真的需要 运算符 而不是像 我可以使用与 CriteriaBu
  • 参考上一个问题:为什么 VBA 没有加载所有发票详细信息

    除了上一个问题之外 我们在销售发票上仍然存在相同的加载失败问题 下面的 VBA Json 仍然仅加载一行或第一个产品详细信息行 而不是与表中该销售发票合作的所有产品行详细信息 我们希望下面的 VBA 能够根据参数加载发票详细信息 例如 如果
  • Maven WebApp META-INF context.xml

    我正在使用 Maven 3 并且尝试在 webapp 文件夹下添加 META INF 文件夹 所以我正在尝试执行以下操作 src main webapp META INF context xml WEB INF 下面是我的 POM 文件
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • 使用 Jena 查询维基数据

    目前 Wikidata 有一个 SPARQL 端点 https query wikidata org https query wikidata org 我想使用 Jena 3 0 1 查询此网站 我使用以下代码 但收到错误消息 端点返回的
  • 在拇指上方显示修改后的 JSlider 值

    有没有一种简单的方法可以在使用某些 外观和感觉 的同时更改 JSlider 上方标签中显示的值 为了清楚起见 我正在谈论这个值 具体来说 我想显示除以 1000 的值而不是值本身 我知道如果我显示它们 我可以为刻度设置标签 但用户将不得不猜
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • Angular 4 Http POST 不起作用

    我希望每个人都做得很好 我最近开始使用 Angular 4 4 我一直在尝试将数据发布到我的 api 服务器 但不幸的是它不起作用 我花了大约两天的时间 但仍然没有成功 甚至已经尝试过 6 7 篇文章角 io https angular i
  • jDBI中如何进行内查询?

    我怎样才能在 jDBI 中执行这样的事情 SqlQuery select id from foo where name in
  • 接口是否像对象一样对待?

    为什么下面的代码可以工作 interface I class A implements I public String toString return in a class B extends A public String toStrin
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • 开发者环境-如何调用/消费其他微服务

    背景 我的环境 Java Play2 MySql 我在 Play2 gt S1 S2 S3 上编写了 3 个无状态 Restful 微服务 S1 消耗来自 S2 和 S3 的数据 因此 当用户点击 S1 时 该服务会异步调用 S2 S3 合
  • Proguard 正在破坏我的清洁度。 Gson 和泛型

    我有一个从持久性加载信息的函数 我只是以一种非常简单的方式告诉它的类型 该类称为SharedPreferencesHelper kt所以它是一个真正的生活问题解决者 fun
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • Angular 4 中的箭头函数(Lambda 函数)

    我对lambda知之甚少 lambda表达式被视为一个函数 我们有很多方法可以做到这一点 这是我的简单功能TypeScript file byPan card1 card2 return card1 pan card2 pan 我在 HTM
  • Angular 7 CLI 生成的项目抛出“ERROR in multi ./src/styles.sass”

    我使用生成了一个新的 Angular 项目ng new dragonfly具有以下参数 角 v7 2Angular CLI v 7 3NPM 6 7 0Windows 10 我选择包含路由和 SCSS 当我尝试使用启动项目时npm star
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF

随机推荐

  • xml 文件中的错误标记中的数据过早结束

    我制作了这个系统 但它不知道发生了什么 行 197 core php foreach this gt getAll as banner 行 191 core php xmlBanners simplexml load file PATH X
  • 使用 boost asio 创建 iostream 并指定 ip 和端口

    我有一个关于 boost asio 库的问题 我成功地尝试在客户端和服务器之间创建一个套接字 这涉及创建解析器以便指定服务器的IP和端口 服务器只需要端口 和其他对象 但是 最重要的是 有必要使用write and read some作为从
  • x86 组装pushad/popad,速度有多快?

    我只是想在 x86 汇编中制作非常快速的基于计算的程序 但我需要在调用程序之前推送累加器 计数器和数据寄存器 手动推送它们更快 push eax push ecx push edx 或者只是使用 pushad 和 pop 一样 谢谢 如果你
  • 我可以在iOS7中更改datePicker的字体颜色吗?

    刚刚下载了我的 xcode 5 副本 想知道是否有人知道如何更改日期选择器中字体的颜色或大小 我的应用程序需要类似的东西 但最终还是走了很长一段路 遗憾的是 没有更简单的方法可以简单地切换到 UIDatePicker 的白色文本版本 下面的
  • 主机卡模拟 Android 4.4

    既然 Android 在带有 Android 4 4 的 Nexus 5 上支持卡模拟 是否可能会出现一些应用程序 允许我有效地复制智能卡 例如 在办公室开门的智能卡 并在其位置使用我的手机 会非常方便 Cheers 不 这不太可能 通常
  • 远程进程执行

    我的场景是使用 C Net 连接到远程计算机 并列出该远程计算机的所有进程 我可以终止一个进程 或者远程启动一个新进程 问题是 当我在远程执行新进程时 我可以在任务管理器上看到该进程 但它不会出现在 Windows 屏幕上 知道为什么它没有
  • 发布后运行 exe 时出错:“此程序可能未正确安装”

    为什么在我发布项目后 我无法在关闭项目后仅运行我的 exe 您在 调试 文件夹中找到的那个 而不收到此错误消息 因此不使用我发布的项目 仍然只使用 exe 我创建了一个测试项目只是为了测试是否是这种情况 并且每次都会发生这种情况 创建一个新
  • 如何在Elasticsearch中查询IP范围?

    我想在ELK中查询IP范围 172 16 0 0到172 31 0 0 我尝试了两种查询方法 但都失败了 query bool should regexp DstIP 172 3 0 1 1 6 9 2 0 9 minimum should
  • 如何在 Awk 中使用单个正则表达式提取多个字符串

    我有以下字符串 Mike has XXX cats and XXXXX dogs MikehasXXXcatsandXXXXXdogs 我想将 Xs 替换为与 Xs 数量相对应的数字 I tried awk match 0 X a leng
  • 无法安装文本

    使用命令pip install textract我无法在 Ubuntu 16 04 Python 2 上安装 texttract 我收到以下错误 Collecting textract Requirement already satisfi
  • 如何从CollectionType中获取随机元素?

    这是我的示例代码 import Foundation ar4random uniform extension CollectionType where Self Index Distance Int var randomElement Se
  • 是否可以在模拟器上使用已发布的即时应用程序(BuzzFeed、Wish 等)?

    我已经在模拟器上运行了一个 hello world 即时应用程序 如下这个谷歌的教程 https developer android com topic instant apps getting started first instant
  • 如何在 PHP 中实现数字签名

    我必须在我们用 PHP 打印为 PDF 的证书中实现数字签名 该要求类似于注册商或子注册商等授权人员对证书进行数字签名 实施数字签名背后的基本思想是要知道 证书是由授权人数字签名的 并且是该授权人或其他没有权限的人创建的 注册商 分注册商对
  • PostgreSQL 有一个好的数据库建模工具吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在同一项目中跨表单使用类[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个具有几种不同形式的项目 Form1 Form2 Form3我还有一堂课叫CustomTools其中包含常用的验证程序和功能 cl
  • 计算两条曲线之间的面积

    我有一个包含曲线和直线的代码 我知道如何填充线下方和下方的区域 但我需要计算每个区域的面积值 这是代码 import matplotlib pyplot as plt import numpy as np x np arange 0 0 2
  • mamp mysql 无法启动

    我的 mysql 服务器有问题 当我启动 MAMP 时 Mysql 服务器不会启动 我尝试更改端口但没有帮助 我检查错误日志 发现以下内容 161010 09 21 07 mysqld safe Starting mysqld daemon
  • iPhone iOS UILabel 如何仅自定义 UITableView 详细文本标签的文本颜色?

    我正在开发一个界面原型 并使用故事板来实现 原型的一部分涉及将 UITableView 单元格的详细 UILabel 设置为某种颜色 我想避免必须手动重新着色故事板中的每个标签 我发现我可以使用 UILabel appearanceWhen
  • 多处理中的加入超时

    我有一个虚拟示例 我想在其中应用多重处理 考虑一个场景 其中有一串数字 我称之为帧 逐一传入 我想将其分配给当前可用的任何单个进程 所以我创建了 4 个正在运行的进程while循环 查看队列中是否有任何元素 然后对其应用函数 问题是当我jo
  • 在struts中从Angular 2发送和接收http post数据

    我正在尝试将 http post 数据从 Angular 4 代码发送到 struts 操作 Struts 操作正在被调用 但无法接收数据 给我一个错误 java lang ClassCastException java lang Inte