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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

Struts 2

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

3498閲覧

actionのexecute()が2回呼ばれてしまう

aki.M

総合スコア13

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

Struts 2

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/10/14 08:43

社員のリストをクリックしてJSでsubmitを動かして社員の詳細ページに飛ぶ作りなのですが、
画面を遷移するときにactionのexecute()が2回呼ばれてしまいます。2回呼ばれるときと1回のときがあり2回呼ばれる場合はエラーでページが見つかりませんとなってしまいます。
PCによってはその現象が全く起らないものもあり、eclipce上では起こりません。

JSPとjsのソースは以下になります。ご教示お願いします。

<section id="mainContents"> <s:form action="registertargetchoice"> <div id="titleArea"> <h1>対象者一覧</h1> </div> <div id="contentsArea"> <div id="errmsg"> <s:actionerror /> </div> <div id="searchArea" class="clearfix"> <div class="searchBody"> <dl class="clearfix"> <dt>社員No.</dt> <dd><s:textfield label="社員No." name="searchEntity.shain_cd" maxlength="12" cssClass="ime_d" id="shainCd"/></dd> <dt>社員氏名</dt> <dd><s:textfield label="社員氏名" name="searchEntity.shain_nm" maxlength="64" cssClass="ime_a" id="shainNm"/></dd> <dt>入社日</dt> <dd> <div id="hireDateArea"> <div> <span id="startYearFromArea"><s:select name="searchEntity.start_ymd_year_from" list="ymdYearList" listKey="key" listValue="value" onchange="generateDay('startFrom')" id="startFromYear" />年</span> <span id="startMonthFromArea"><s:select name="searchEntity.start_ymd_month_from" list="ymdMonthList" listKey="key" listValue="value" onchange="generateDay('startFrom')" id="startFromMonth" />月</span> <span id="startDayFromArea"><s:select name="searchEntity.start_ymd_day_from" list="ymdDayList" listKey="key" listValue="value" onfocus="generateDay('startFrom')" id="startFromDay" />日</span> </div> <div> ~ </div> <div> <span id="startYearToArea"><s:select name="searchEntity.start_ymd_year_to" list="ymdYearList" listKey="key" listValue="value" onchange="generateDay('startTo')" id="startToYear" />年</span> <span id="startMonthToArea"><s:select name="searchEntity.start_ymd_month_to" list="ymdMonthList" listKey="key" listValue="value" onchange="generateDay('startTo')" id="startToMonth" />月</span> <span id="startDayToArea"><s:select name="searchEntity.start_ymd_day_to" list="ymdDayList" listKey="key" listValue="value" onfocus="generateDay('startTo')" id="startToDay" />日</span> </div> </div> </dd> </dl> <!-- <dl class="clearfix"></dl> --> <dl class="clearfix"> <dt>確認状況</dt> <dd><s:select name="searchEntity.confirming_stat" list="confirmingStatList" listKey="code" listValue="name" id="confirmingStat" /></dd> <%-- <dt>利用帳票</dt> <dd><s:select name="searchEntity.ledger_sheet_use" list="ledgerSheetUseList" listKey="code" listValue="name" id="ledgerSheetUse" /></dd> --%> </dl> </div> <div class="searchArrow"></div> <div id="searchbtn" class="circleM" onClick="searchProgram()"><span id="search">検索</span></div> </div> <p id="searchMessage"><s:property value="searchEntity.searchMessage" /></p> <s:if test="resultlist != null && !resultlist.isEmpty()"> <table border="1"> <thead> <tr><th>社員No.</th><th>社員氏名</th><th>カード氏名</th><th>入社日</th><th>本人家族氏名</th><th>生年月日</th><th>性別</th><th>続柄</th><th>確認1</th><th>確認2</th></tr> </thead> <tbody> <s:iterator value="resultlist" var="result"> <tr onClick="javascript:setAndSubmit('<s:property value="#result.request_cd" />','<s:property value="#result.zokugara_cd" />')"> <td id="shainCode"><s:property value="#result.shain_cd" /></td> <td class="shainName" title="<s:property value="#result.shain_nm" />"><div class="shainName"><s:property value="#result.shain_nm" /></div></td> <td class="cryptNm" title="<s:property value="#result.crypt_nm" />"><div class="cryptNm"><s:property value="#result.crypt_nm" /></div></td> <td id="startYmd"><s:property value="#result.start_ymd" /></td> <td class="himselfNm" title="<s:property value="#result.himself_nm" />"><div class="himselfNm"><s:property value="#result.himself_nm" /></div></td> <td id="birthdayYmd"><s:property value="#result.birthday_date" /></td> <td id="gender"><s:property value="#result.gender" /></td> <td id="zokuDis"><s:property value="#result.zokugara" /></td> <td id="confirming1"><s:property value="#result.confirming1" /></td> <td id="confirming2"><s:property value="#result.confirming2" /></td> <%-- <td id="rsLedgerSheetUse"><s:property value="#result.ledger_sheet_use" /></td> </tr> --%> </s:iterator> </tbody> </table> </s:if> </div> <div class="hiddenBtnArea"> <s:textfield name="leaveType" id="leaveType" /> <input type="hidden" name="l91.sessionId" class="sessionId" value="<%=request.getSession().getId()%>" /> <s:textfield name="l91.functionNm" class="functionNm" value="" /> <s:textfield name="l91.eventNm" class="eventNm" value="" /> <s:textfield name="l91.eventNo" class="eventNo" value="" /> <s:textfield name="l91.levelFlg" class="levelFlg" value="" /> <s:textfield name="eventCategory" class="eventCategory" value="" /> <s:submit id="actionTrigger" /> <s:submit id="searchTrigger" method="search" value="検索" /> </div> </s:form> <form method="post" action="../register/registeredit"> <div class="hiddenBtnArea"> <input type="hidden" name="l91.sessionId" class="sessionId" value="<%=request.getSession().getId()%>" /> <s:textfield name="l91.functionNm" class="functionNm" value="" /> <s:textfield name="l91.eventNm" class="eventNm" value="" /> <s:textfield name="l91.eventNo" class="eventNo" value="" /> <s:textfield name="l91.levelFlg" class="levelFlg" value="" /> <s:textfield name="eventCategory" class="eventCategory" value="" /> </div> <s:hidden id="request_cd" name="request_cd" /> <s:hidden id="zokugara_cd" name="zokugara_cd" /> <s:hidden name="transitionOrg" id="transitionOrg" /> <s:submit id="editTrigger" value="javaアクションへ" /> </form> </section> </div>
window.onload = function() { addLog(OPEN_PAGE,EVENT_CATEGORY_OPEN); } /* * ログ追加 */ function addLog(eventNmByEvent,eventCategoryByEvent) { var obj = {}; var sessionId = $('.sessionId').val(); var title = document.getElementsByTagName("h1")[1].innerText; var eventNm = eventNmByEvent; var eventNo = FIRST_EVENT_NO; var levelFlg = LEVEL_FLG_INFO; var eventCategory = eventCategoryByEvent; var paramSessionId = 'l91.sessionId'; var paramFunctionNm = 'l91.functionNm'; var paramEventNm = 'l91.eventNm'; var paramEventNo = 'l91.eventNo'; var paramLevelFlg = 'l91.levelFlg'; var paramEventCategory = 'eventCategory'; obj[paramSessionId] = sessionId; obj[paramFunctionNm] = title; obj[paramEventNm] = eventNm; obj[paramEventNo] = eventNo; obj[paramLevelFlg] = levelFlg; obj[paramEventCategory] = eventCategory; var jqxhr = $.ajax({ url : "logadd", cache : false, // キャッシュさせない data : obj }).done(function() { // alert("success"); }).fail(function() { // alert("error"); }).always(function() { // alert("complete"); }); } function setAndSubmit(id, zokugara) { $('.functionNm').val(document.getElementsByTagName("h1")[1].innerText); $('.eventNm').val("明細"); $('.eventNo').val(FIRST_EVENT_NO); $('.levelFlg').val(LEVEL_FLG_INFO); $('.eventCategory').val(EVENT_CATEGORY_BUTTON); $('#request_cd').val(id); $('#zokugara_cd').val(zokugara); $('#transitionOrg').val("registertargetchoice"); $('#editTrigger').trigger("click"); }

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

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

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

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

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

guest

回答2

0

<s:iterator>で繰り返し表示している部分で、<tr>の閉じタグである</tr>がコメントアウトされているため、onclickのイベントがどこまで範囲になっているかが不安定になるため、送信が複数回になる可能性はあるのではないでしょうか。

html

1<tr onClick="javascript:setAndSubmit(' ...... 2...(中略)... 3 <%-- <td id="rsLedgerSheetUse"><s:property value="#result.ledger_sheet_use" /></td> 4</tr> --%>

正しくはこうではないでしょうか。

html

1<%-- <td id="rsLedgerSheetUse"><s:property value="#result.ledger_sheet_use" /></td> 2--%> 3</tr>

投稿2016/10/14 09:05

A-pZ

総合スコア12011

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

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

aki.M

2016/10/17 05:33

回答ありがとうごさいます。warファイルを置き換えて現象が起きるかどうか試してみます。
aki.M

2016/10/20 00:29

修正して確認してみましたが、同じ現象が起きてしまいます。
aki.M

2016/10/21 09:59

確認したところ問題が起きるPCで別のシステムを操作しているときにも同じ現象が 起きるのでPCやIEが問題かもしれません。
guest

0

自己解決

JSPで2回読み込まないように対応しました

投稿2016/11/10 01:50

aki.M

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問