[Seasar-user:16295] Re: 【S2JSF】 ネストしたforEach中のaタグの画面遷移不正について

minami [E-MAIL ADDRESS DELETED]
2008年 11月 13日 (木) 20:12:58 JST


米林さん

お世話になっております。
南と申します。

ご返信ありがとうございます。

forEachを使用した部分以外に画面遷移ができる、
aタグを用意し実行した時のHTMLを以下のように採集しました。

〓 正常に遷移できた時のリンク部分

<a href="#"
  onclick="
clear__5Fid6();
var f = document.forms['_id6'];
f['_id6:__link_clicked__'].value = '_id6:_id28';
f['scheduleId'].value = '1';
if (f.onsubmit)
{
f.onsubmit();
}
f.submit();
clear__5Fid6();
return false;
">詳細</a>

〓 自画面に遷移してしまうリンクの部分

<a href="#"
onclick="
clear__5Fid6();
var f = document.forms['_id6'];
f['_id6:__link_clicked__'].value = '_id6:_id33_1:_id40_0:_id42_0:_id44';
f['scheduleId'].value = '2';
f['year'].value = '2008';
f['month'].value = '11';
if (f.onsubmit)
{
f.onsubmit();
}
f.submit();
clear__5Fid6();
return false;">2(スケジュールID)</a>

〓 画面全部のソース

 ○ ページのソース

<html xmlns:m="http://www.seasar.org/maya">
<head>
<meta content="text/html; charset=Windows-31J" http-equiv="Content-Type" />
<style type="text/css">
<!--
body,td,th {
font-size: 12px;
}
.date {
font-size: 10px;
background-color: gainsboro;
color: gray;
}
//-->
</style>
</head>
<body>
<form name="_id6" method="post"
enctype="application/x-www-form-urlencoded"
action="/GrandMarcheProject-0.0.1-SNAPSHOT/html/calendar.html">
<a href="#" onclick="clear__5Fid6();var f = document.forms['_id6'];
f['_id6:__link_clicked__'].value = '_id6:_id8'; f['year'].value =
'2008'; f['month'].value = '11'; f['offset'].value = '-1'; if
(f.onsubmit) { f.onsubmit(); } f.submit();clear__5Fid6(); return
false;">&lt;&lt;



</a>
2008/11
<a href="#" onclick="clear__5Fid6();var f = document.forms['_id6'];
f['_id6:__link_clicked__'].value = '_id6:_id19'; f['year'].value =
'2008'; f['month'].value = '11'; f['offset'].value = '1'; if
(f.onsubmit) { f.onsubmit(); } f.submit();clear__5Fid6(); return
false;">&gt;&gt;



</a>&nbsp;
<a href="#" onclick="clear__5Fid6();var f = document.forms['_id6'];
f['_id6:__link_clicked__'].value = '_id6:_id28'; f['scheduleId'].value =
'1'; if (f.onsubmit) { f.onsubmit(); } f.submit();clear__5Fid6(); return
false;">詳細

</a>&nbsp;
<table width="100%" border="1" cellspacing="1">
<tr>
<th bgcolor="pink">日</th>
<th bgcolor="#FFFFCC">月</th>
<th bgcolor="#FFFFCC">火</th>
<th bgcolor="#FFFFCC">水</th>
<th bgcolor="#FFFFCC">木</th>
<th bgcolor="#FFFFCC">金</th>
<th bgcolor="skyblue">土</th>
</tr>

<tr>

<th align="right" class="date">
26
</th>

<th align="right" class="date">
27
</th>

<th align="right" class="date">
28
</th>

<th align="right" class="date">
29
</th>

<th align="right" class="date">
30
</th>

<th align="right" class="date">
31
</th>

<th align="right" class="date">
1
</th>

</tr>
<tr height="60px">

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

</tr>

<tr>

<th align="right" class="date">
2
</th>

<th align="right" class="date">
3
</th>

<th align="right" class="date">
4
</th>

<th align="right" class="date">
5
</th>

<th align="right" class="date">
6
</th>

<th align="right" class="date">
7
</th>

<th align="right" class="date">
8
</th>

</tr>
<tr height="60px">

<td valign="top">

<a href="#" onclick="clear__5Fid6();var f = document.forms['_id6'];
f['_id6:__link_clicked__'].value = '_id6:_id33_1:_id40_0:_id42_0:_id44';
f['scheduleId'].value = '2'; f['year'].value = '2008'; f['month'].value
= '11'; if (f.onsubmit) { f.onsubmit(); } f.submit();clear__5Fid6();
return false;">2



</a><br />
&nbsp;
</td>

<td valign="top">

<a href="#" onclick="clear__5Fid6();var f = document.forms['_id6'];
f['_id6:__link_clicked__'].value = '_id6:_id33_1:_id40_1:_id42_0:_id44';
f['scheduleId'].value = '5'; f['year'].value = '2008'; f['month'].value
= '11'; if (f.onsubmit) { f.onsubmit(); } f.submit();clear__5Fid6();
return false;">5



</a><br />

<a href="#" onclick="clear__5Fid6();var f = document.forms['_id6'];
f['_id6:__link_clicked__'].value = '_id6:_id33_1:_id40_1:_id42_1:_id44';
f['scheduleId'].value = '3'; f['year'].value = '2008'; f['month'].value
= '11'; if (f.onsubmit) { f.onsubmit(); } f.submit();clear__5Fid6();
return false;">3



</a><br />
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

</tr>

<tr>

<th align="right" class="date">
9
</th>

<th align="right" class="date">
10
</th>

<th align="right" class="date">
11
</th>

<th align="right" class="date">
12
</th>

<th align="right" class="date">
13
</th>

<th align="right" class="date">
14
</th>

<th align="right" class="date">
15
</th>

</tr>
<tr height="60px">

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

</tr>

<tr>

<th align="right" class="date">
16
</th>

<th align="right" class="date">
17
</th>

<th align="right" class="date">
18
</th>

<th align="right" class="date">
19
</th>

<th align="right" class="date">
20
</th>

<th align="right" class="date">
21
</th>

<th align="right" class="date">
22
</th>

</tr>
<tr height="60px">

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">

<a href="#" onclick="clear__5Fid6();var f = document.forms['_id6'];
f['_id6:__link_clicked__'].value = '_id6:_id33_3:_id40_4:_id42_0:_id44';
f['scheduleId'].value = '4'; f['year'].value = '2008'; f['month'].value
= '11'; if (f.onsubmit) { f.onsubmit(); } f.submit();clear__5Fid6();
return false;">4



</a><br />
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

</tr>

<tr>

<th align="right" class="date">
23
</th>

<th align="right" class="date">
24
</th>

<th align="right" class="date">
25
</th>

<th align="right" class="date">
26
</th>

<th align="right" class="date">
27
</th>

<th align="right" class="date">
28
</th>

<th align="right" class="date">
29
</th>

</tr>
<tr height="60px">

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

</tr>

<tr>

<th align="right" class="date">
30
</th>

<th align="right" class="date">
1
</th>

<th align="right" class="date">
2
</th>

<th align="right" class="date">
3
</th>

<th align="right" class="date">
4
</th>

<th align="right" class="date">
5
</th>

<th align="right" class="date">
6
</th>

</tr>
<tr height="60px">

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

<td valign="top">
&nbsp;
</td>

</tr>

</table>
<input type="hidden" name="_id6/html/calendar.html" value="_id6"
/><input type="hidden" name="_id6:__link_clicked__" /><input
type="hidden" name="year" /><input type="hidden" name="month" /><input
type="hidden" name="offset" /><input type="hidden" name="scheduleId" />
<script language="JavaScript" type="text/javascript">
<!--
function clear__5Fid6(){var f = document.forms['_id6'];
f.elements['_id6:__link_clicked__'].value='null';
f.elements['year'].value='null'; f.elements['month'].value='null';
f.elements['offset'].value='null';
f.elements['scheduleId'].value='null'; f.target='';} clear__5Fid6();
//-->
</script></form>

</body></html>

お手数をお掛けして恐縮ですが、ご指南を戴けますと幸いです。



[E-MAIL ADDRESS DELETED] さんは書きました:
> 米林です。
>
> こちらで動作確認等出来ないのですが、1点お願いが
> あります。
> そちらの方で、正常に遷移出来る場合とそうでない場合と
> レンダリングされたHTMLを比較して頂けますか?
> 該当ページのHTMLをソースの表示で参照した場合に、その
> リンクが押された場合の挙動が追えると思います。
>
> お手数をおかけしますが、よろしくおねがいします。
>
> ----- Original Message ----- From: "minami" <[E-MAIL ADDRESS DELETED]>
>
>
>> お世話になっております。
>> 南と申します。
>>
>> 現在、お客様のシステムの開発にて、
>> S2JSF-1.1.2を使用せていただいております。
>>
>> ------------------------------------------
>> 開発環境
>> ------------------------------------------
>> JDK 1.6.0-b105, mixed mode, sharing
>> JBoss 4.0.5GA / 4.2.3GA(試し用)
>> Oracle 10.2.0.1.0
>> Eclipse 3.3 europa
>> Maven 2.0.8
>> ライブラリは添付イメージを参照ください。
>> ------------------------------------------
>>
>> 自分はSeasar2の初心者であります。
>> 参考にしているサンプルソースに不具合がありまして、
>> 進んでない状況です。
>>
>> ○ 問題
>>
>> ネストされているforEachの中の<a>タグをクリックした時、
>> 指定した画面へ遷移せず自画面に再遷移してしまう。
>>
>>
>> ○ 作業手順
>>
>> 下記の形式のテーブルを作成しました。
>> -----------------------------------------------------------------------------------------------------------------------
>>
>> calendar.html
>> -----------------------------------------------------------------------------------------------------------------------
>>
>> <span m:inject="s:forEach" m:items="#{calendarDto.weekDtoList}"
>> m:var="week">
>> <tr>
>> <span m:inject="s:forEach" m:items="#{week.dateDtoList}" m:var="date">
>> <th align="right" class="date">
>> <span m:value="#{date.date}" m:converter="#{dateConverter}"/>
>> </th>
>> </span>
>> </tr>
>> <tr height="60px">
>> <span m:inject="s:forEach" m:items="#{week.dateDtoList}" m:var="date">
>> <td valign="top">
>> <span m:inject="s:forEach" m:items="#{date.scheduleDtoList}"
>> m:var="scheduleVal">
>>   ★→  <a m:action="schedule" m:value="#{scheduleVal.scheduleId}">
>>   <span m:inject="f:param" m:name="scheduleId"
>> m:value="#{scheduleVal.scheduleId}"/>
>>   <span m:inject="f:param" m:name="year"
>> m:value="#{calendarDto.year}"/>
>>   <span m:inject="f:param" m:name="month"
>> m:value="#{calendarDto.month}"/>  </a><br/>
>> </span>&nbsp;
>> </td>
>> </span>
>> </tr>
>> </span>
>> -----------------------------------------------------------------------------------------------------------------------
>>
>>
>> ○ やってみたこと
>>
>> forEachのループの外に、
>> 下記のように作成して動作してみると正常に動作しています。
>>
>> -----------------------------------------------------------------------------------------------------------------------
>>
>> calendar.html(一部)
>> -----------------------------------------------------------------------------------------------------------------------
>>
>> <a m:action="schedule">テキスト
>> <span m:inject="f:param" m:name="scheduleId"
>> m:value="#{scheduleVal.scheduleId}"/>
>> <span m:inject="f:param" m:name="year" m:value="#{calendarDto.year}"/>
>> <span m:inject="f:param" m:name="month" m:value="#{calendarDto.month}"/>
>> </a>
>> -----------------------------------------------------------------------------------------------------------------------
>>
>>
>> そのときのfaces-config.xmlは以下のようです。
>>
>> -----------------------------------------------------------------------------------------------------------------------
>>
>> faces-config.xml
>> -----------------------------------------------------------------------------------------------------------------------
>>
>> <navigation-rule>
>> <navigation-case>
>> <from-outcome>calendar</from-outcome>
>> <to-view-id>/html/calendar.html</to-view-id>
>> </navigation-case>
>> </navigation-rule>
>>
>> <navigation-rule>
>> <navigation-case>
>> <from-outcome>schedule</from-outcome>
>> <to-view-id>/html/schedule.html</to-view-id>
>> </navigation-case>
>> </navigation-rule>
>> -----------------------------------------------------------------------------------------------------------------------
>>
>>
>> 未熟者のため、質問内容がわかりにくいかもしれませんが、
>> よろしくお願いいたします。
>
> ---
> 米 林 正 明
> http://www.abby.co.jp
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
>
>
>

-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20081113/2d382c3c/attachment-0001.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: source.txt
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20081113/2d382c3c/attachment-0001.txt>


Seasar-user メーリングリストの案内