質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

1回答

7585閲覧

json形式の文字列を表示させようとするとダウンロードダイアログが表示される

katouke

総合スコア7

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Struts 2

Apache Struts 2は、Apache Strutsプロジェクトにて開発されているオープンソースのJavaベースのWebアプリケーションフレームワークです。Sturts1に比べ、設定ファイルの削減、依存性の注入、POJO等の改善がなされています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2018/03/25 02:32

実現したいこと

struts2を使ってjson形式の文字列を表示させるだけの簡単なプログラムを作成しようとしています。
ブラウザはIE11です。

発生している問題・エラーメッセージ

しかし、json形式の文字列を表示させようとすると、画面が表示されず、
テキストファイルのダウンロードダイアログが表示されてしまいます。
そのテキストファイルをダウンロードして中身を見てみると
json形式の文字列が入っているのでjson形式に変換するところまでは
できているはずです。
index.jspに表示させるにはどうしたらよろしいでしょうか。

該当のソースコード

【struts.xml】

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="hello" namespace="/" extends="json-default"> <result-types> <result-type name="json" class="org.apache.struts2.json.JSONResult" /> </result-types> <action name="hello" class="test.actions.HelloAction" method="execute"> <result name="success" type="json">/index.jsp </result> </action> </package> </struts>

【index.jsp】
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>hello</title> </head> <body> <s:form action="hello"> <s:textfield key="text01" /> <br/> <s:label key="msg" /> <br/> <s:submit value="testSubmit" /> </s:form> </body> </html>

【HelloAction.java】
package test.actions;

import java.util.HashMap;

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport{
private static final long serialVersionUID = 1L;
private HashMap<String,String> msg;
private String text01;

public HashMap<String,String> getMsg() {

return msg;

}

public void setMsg(HashMap<String,String> msg) {

this.msg = msg;

}

public String getText01() {
return text01;
}

public void setText01(String text01) {
this.text01 = text01;
}

public String execute()

{

HashMap<String,String> map = new HashMap<String,String>();

map.put("english",text01);

map.put("japanese",text01);

setMsg(map);

return "success";

}

}

【API】
asm-5.2
asm-commons-5.2
asm-tree-5.2
commons-fileupload-1.3.3
commons-io-2.5
commons-lang-2.4
commons-lang3-3.6
commons-logging-1.1.3
freemarker-2.3.26-incubating
javassist-3.20.0-GA
log4j-api-2.9.1
ognl-3.1.15
struts2-convention-plugin-2.5.14.1
struts2-core-2.5.14.1
struts2-json-plugin-2.5.14.1
xmlpull-1.1.3.1
xpp3_min-1.1.4c
xstream-1.4.10

補足情報

JDK 1.8.0
tomcat8.0
struts2-2.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

A-pZ

2018/03/27 06:15

JSONレスポンスをブラウザに出力したいのか、それともindex.jspにJSONレスポンスの内容を出力したいのか、どちらでしょうか?
guest

回答1

0

サーバ側がJSON(Content-Type:application/json)を返したとき、ダウンロードになるのはIEの仕様です。

以下のようにレジストリをいじることでダウンロードせずブラウザに表示できるようになるらしいですが、

(英語です)
https://developers.de/blogs/holger_vetter/archive/2013/12/13/view-json-in-internet-explorer-7-11.aspx

よほどの理由が無い限り、レジストリをいじってまでやる必要が無いように思います。

投稿2018/03/27 03:30

TetsuyaZama

総合スコア216

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問