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

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

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

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

Struts 2

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

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

Q&A

解決済

2回答

2853閲覧

Struts2で別ページに飛ぶと404エラーになる

botam

総合スコア5

Java

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

Struts 2

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

Struts

StrutsはJava向けのWebアプリケーションフレームです。MVCモデルに基づいており、JSPやJavaサーブレットを組み合わせ、アプリケーション構築時に使用する各機能を提供しています。

0グッド

0クリップ

投稿2020/05/05 07:31

編集2020/06/20 11:31

前提・実現したいこと

現在Struts2を学習しており、wellcomeページでボタンを押すとテキストフィールドにて書かれた文字が別ページにて表示されるアプリを作ろうとしています。

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

タイプ ステータスレポート メッセージ There is no Action mapped for namespace [/] and action name [hello] associated with context path [/todo_app]. 説明 **オリジンサーバーは、ターゲットリソースの現在の表現を見つけられなかったか、またはそれが存在することを開示するつもりはありません。**

と表示され別ページに飛ぶことができません。

該当のソースコード

HelloActionjava

1public class HelloAction { 2 /** ロガー */ 3 private Logger logger = LogManager.getLogger(HelloAction.class); 4 5 /** 名前 */ 6 private String name; 7 8 public String execute() { 9 logger.info("入力されたパラメータは「{}」です。", name); 10 return "success"; 11 } 12 public String getName() { 13 return name; 14 } 15 16 public void setName(String name) { 17 this.name = name; 18 } 19 20 }

indexjsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<!-- Struts2のタグライブラリを使用可能にする --> 3<%@ taglib prefix="s" uri="/struts-tags"%> 4<!-- タイプ宣言はHTML5のものを使用する --> 5<!DOCTYPE html> 6<html> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 9 <title>トップページ</title> 10 </head> 11 <body> 12 <s:form action="hello"> 13 <s:textfield name="name" /> 14 <s:submit value="HelloWorldページへ行く" /> 15 </s:form> 16 </body> 17</html>

Strutsxml

1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5<struts> 6 <!-- アクションのパッケージ定義 --> 7 <constant name="struts.devMode" value="true"></constant> 8 <package name="default" extends="struts-default"> 9 <!-- Hello worldのサンプルアクション --> 10 <action name="hello" class="sample.HelloAction" method="execute"> 11 <result name="success">/view/sample/HelloWorld.jsp</result> 12 </action> 13 </package> 14</struts>

webxml

1<?xml version="1.0" encoding="UTF-8"?> 2<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://xmlns.jcp.org/xml/ns/javaee" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 5 id="WebApp_ID" version="3.1"> 6 <display-name>todo_app</display-name> 7 <welcome-file-list> 8 <welcome-file>index.jsp</welcome-file> 9 </welcome-file-list> 10 11 <filter> 12 <filter-name>struts2</filter-name> 13 <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> 14 </filter> 15 16 <filter-mapping> 17 <filter-name>struts2</filter-name> 18 <url-pattern>/*</url-pattern> 19 </filter-mapping> 20</web-app>

HelloWorldjsp

1<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 2<%@ taglib prefix="s" uri="/struts-tags"%> 3<!DOCTYPE html> 4<html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Hello Struts2 world!</title> 8 </head> 9 <body> 10 <!-- メッセージの間に渡されたデータを表示します。 --> 11 Hello Struts2 world, <s:property value="name" />さん 12 </body> 13</html> 14```   15   16![アプリケーションの改装](bc86be20e4301582fd495d2f6963c3fc.png) 17 18### 試したこと 19 20Strutsの改装を確認して、s:form actionとStruts.xmlのactionnameが同じことを確認しました。 21 22### 補足情報 23java11 24eclipse 2020-03 25##参考にさせてもらったページ 26> https://qiita.com/tarosa0001/items/889faa2ab5853005f26b#31-%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E6%BA%96%E5%82%99

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/05/05 07:40

基本設定しているアクション用の接尾語つけてる?
botam

2020/05/05 08:31

.actionの設定はしてなかったです。 <s:action name=hello.action class="sample.HelloAction" method="execute"></action>のように書けばよいのでしょうか?
A-pZ

2020/06/17 13:52

Actionクラスのコードが記載されていませんが、記載漏れでしょうか。
guest

回答2

0

ベストアンサー

Struts2用の設定ファイル名が違います。

デフォルトでは struts.xml です。

投稿2020/06/21 10:07

A-pZ

総合スコア12011

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

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

botam

2020/06/21 14:11

ありがとうございます
guest

0

まあまじめな話

<action name="hello" class="sample.HelloAction" method="execute">

とありますが、対象のクラスはないですよね

投稿2020/05/05 08:56

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

botam

2020/05/05 12:17

回答ありがとうございます。 上記を<action name="hello" class="todo_app.HelloAction" method="execute">に変更したのですがエラーのままで出た内容も同じでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問