<form>タグ

概要

nosession属性が指定された場合の動作は「その<form>と含まれる入力項目は、ML変換以外の処理が行なわれることなく端末に出力される。」と要約することができます。
具体的にはnosession属性が指定された<form>タグは以下のように動作します。

  • action属性は(必要であれば)x-Servletを経由するように書き換えられます。
  • x-Servletのセッションパラメータは付加されません。
  • <form>ブロック内の入力項目のname属性・value属性は書き換えられません。
  • <form>ブロック内のページ分割は行われません。
  • ML変換自体は行なわれます。

通常x-Servletが<form>タグを端末に出力する際にはaction属性の書き換えを行います。x-Servletのセッションが有効な場合にはaction属性の書き換えが行なわれていても問題は起きませんが、セッションが切れてしまうとそのフォームで入力された値は本来のaction属性にではなく書き換えられたaction属性に送信されてしまいます。場合によってはこのaction属性を書き換えるというx-Servletの動作を無効にしたいこともあると思いますが、そのときに用いるのが"nosession"属性です。

x-ServletのセッションIDをURLに含めたくない場合は、元コンテンツ中の該当するリンクに拡張属性の"nosession"をつけてください。

形式

<form nosession>

<コンテンツ>

<html>
<body>
<form action="/page.jsp?id=123456789"method="post" ><!--普通のリンク-->
</form>
<form  action="/page.jsp?id=123456789" method="post" nosession><!--セッションパラメータを付けたくないリンク-->
</form>
</body>
</html>

<端末に送られるデータ>

<html>
<head>
</head>
<body>
<form action="/site/" method="post">
<input type="hidden" name="_xpxi" value="X25aA0.0.0---.F">
</form>
<form action="http://ksk.co.jp/page.jsp?id=123456789" method="post">
</form>
</body>
</html>

"nosession"属性を付加すると、リンクが変換された際にそのURLにはx-ServletセッションIDが付かなくなります。

注意点

  • セッションパラメータが付加されないため、x-Servletのセッションに依存している機能であるCookieやページ分割等はこの<form>のSUBMITに関しては無効になります。
  • セッションID が付かなくなることで <form>ブロック内のページ分割機能が働きません(<form>ブロック外での分割は行われます)ので、<form>ブロックが巨大な場合は端末でページサイズオーバーとなる場合があります。
    あらかじめ <form> の内容を複数のページに分割しておくなどページサイズが小さくなるように考慮してください。
TOP