アプリ版:「スタンプのみでお礼する」機能のリリースについて

html:linkを使用してJSPを表示した際に、前のフォームのプロパティ値(ここではstaffNumberの値)を取得したいのですが,うまくいきません。
同じ処理をhtml:submitで実行すると取得できています。
その違いを教えて頂きたいのです。
以下がそのコードです。

【struts-config】
<form-bean dynamic="true" name= "loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name = "staffNumber" type= "java.lang.String" />
</form-bean>
<action name="loginForm" path="/login" scope="request" type="login.action.LoginAction"
validate="false">
<forward name="success" path="/login.jsp" />
</action>

【login.jsp】
<html:form action="/login">
 <html:text property="staffNumber" size="10"maxlength="8"/>
<html:link action="/login">testlink</html:link>
<html:submit value="test"/>
</html:form>

【LoginAction】
public class LoginAction extends Action{
public ActionForward execute (ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) throws Exception{
DynaValidatorForm loginForm =(DynaValidatorForm) form;
String staffNumber=(String)loginForm.get("staffNumber");
System.out.println(staffNumber);
return (mapping.findForward("success"));
}
}
linkの処理で同じJSPを表示していますが,前のプロパティ値を取得しているかをログで確認する事を優先しているのでそのようにしています。
質問の意味がわからない、ソースの不足等ありましたら御指摘下さい。
宜しくお願いします。

A 回答 (3件)

html:link は、a 要素のタグを生成するので、単に遷移するのみです。

フォームをサブミットするわけではありません。
html:submit は、いわゆるサブミットボタンを生成するので、フォームをサブミットするわけです。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
linkは単に遷移をする機能をもつだけのものであるということなんですね。
でもさらにお手数をおかけしてもうしわけないのですが、html:linkを使用しても何とか次のJSP表示の際に前のプロパティ値を取得したいのです。
私が考えていたのが、linkが押された時にJavaScriptを呼んで前の情報を取得するといった処理を出来ないのか?等を考えているのですが、何か方法はあるのでしょうか?
それともlinkでは前の情報を取得する事は不可能なのでしょうか?
ご回答よろしくお願いします。

お礼日時:2004/05/23 11:28

html:linkに属性があります。

java.util.Mapを渡します。

参考URL:http://jakarta.apache.org/struts/userGuide/strut …
    • good
    • 0

# ここから先は微妙にカテゴリ違いですが・・・。



Javascript を使えば十分可能です。

html:link に onclick をつけて、フォームをサブミットさせてあげればいいのです。

一例をあげればこんな感じです。
<html:link onclick="document.form.submit(); return false;">

ちなみに "document.form.submit()" の form の部分は実際には form の name 属性の値にしてください。

分からないことがあればまた質問してください。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!