私はjspをビューとして持っています。新しいユーザーを追加するためのフォームが表示されます。ユーザーが選択された場合、フォームを事前入力する方法を理解できません。私は、2つのアクションを使って、同じフォームを使って解決策を読んでいます。そのうちの1つは、フィールドにデータを入力するためだけに使用され、データを送信するためにのみ使用されます。 しかし、jspをロードするときにアクション(フォームのアクション属性で定義されているアクション)が呼び出されないので、これは私のためには機能しません(メニューとページはxmlファイル)。私は自分のJSPで2番目のアクションを指定する方法と、最初にJSPをロードするときにアクションが呼び出されるようにする方法を理解していません。可能であれば、私はAJAXに関係しない解決策を好むだろう。ありがとう。Struts1でフォームをあらかじめ用意しています
4
A
答えて
8
Strutsのパワーを持っていると、なぜAJAXに行きたいのですか?私はあなたのための簡単な例を(テストされて)持っています。
MyForm.java
package com.tusar.action;
import java.io.Serializable;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import javax.servlet.http.HttpServletRequest;
public class MyForm extends ActionForm implements Serializable{
private static final long serialVersionUID = 1043346271910809710L;
private String fullName = null;
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
/*This method will be called when you press the reset button
or load the form. You may want to populate the form here also*/
public void reset(ActionMapping mapping, HttpServletRequest request){
String reset = (String)request.getAttribute("myForm.reset");
if ((null != reset)|| ("true".equals(reset))) {
fullName = null;
}
}
}
MyFormSetupAction.java
package com.tusar.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class MyFormSetupAction extends Action{
/*Set your form-bean properties here*/
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
MyForm hwForm = (MyForm) form;
hwForm.setFullName("tusar");
return mapping.findForward("success");
}
}
MyFormSuccessAction.java
package com.tusar.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class MyFormSuccessAction extends Action{
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
return mapping.findForward("success");
}
}
支柱-config.xmlの
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<!-- ==================== Form Bean Definitions -->
<form-beans>
<form-bean name="myForm" type="com.tusar.action.MyForm">
<form-property name="fullName" type="java.lang.String"/>
</form-bean>
<!-- ============= Global Forward Definitions -->
<global-forwards>
<!-- Default forward to "Welcome" action -->
<!-- Demonstrates using index.jsp to forward -->
<forward name="home" path="/home.do"/>
</global-forwards>
<!-- ===================== Action Mapping Definitions -->
<action-mappings>
<!-- This action will load the form-->
<action path="/home"
type="com.tusar.action.MyFormSetupAction"
name="myForm"
validate="false"
input="/WEB-INF/jsp/home.jsp">
<forward name="success" path="/WEB-INF/jsp/home.jsp" />
</action>
<!-- This action will evalutae the form and pass form data to
success page-->
<action path="/successAction"
type="com.tusar.action.MyFormSuccessAction"
name="myForm"
validate="true"
input="/WEB-INF/jsp/home.jsp">
<forward name="success" path="/WEB-INF/jsp/success.jsp" />
</action>
</action-mappings>
<!-- ============= Message Resources Definitions -->
<message-resources parameter="MessageResources" />
</struts-config>
home.jspをあなたがhome.doアクションを呼び出し
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false"%>
<html>
<head>
<title>Struts 1</title>
</head>
<body>
<html:form action="/successAction.do">
Name:
<html:text property="fullName"></html:text>
<html:submit value="Next"></html:submit>
<html:reset value="Cancel"></html:reset>
</html:form>
</body>
</html>
success.jsp
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ page isELIgnored="false"%>
<html>
<head>
<title>Successful !</title>
</head>
<body>
<h3>Your details:</h3>
Name:
<bean:write name="myForm" property="fullName" />
</body>
</html>
毎回は、のfullNameプロパティが"tusar"が移入されます。それ以上の関連が必要な場合は、私がお手伝いいたします。ありがとう!
0
そこにする必要があります。は、ユーザーを選択するときに呼び出されるアクションです。アクションを前方に返す前に、そのユーザーのプロパティをアクションフォームにコピーする必要があります。
設定情報がないと、それ以上に手助けすることは困難です。
関連する問題
- 1. BFSスパニングツリーの結果をあらかじめ用意されています
- 2. Struts1のタグをStruts1のVelocityテンプレートで使用できますか?
- 3. Symfony2モデルのデータをフォームにあらかじめ入力していますか?
- 4. JSON後のデータをフォームにあらかじめ入力していますか?
- 5. symfony multiple choicetypeはあらかじめ用意されていません
- 6. javascriptを使用してstruts1に提出するフォーム
- 7. あらかじめ用意されているSQLiteデータベースがAndroidスタジオで正しく読み込まれない
- 8. GET/POSTからYiiフォームをあらかじめ準備する
- 9. あらかじめ用意されたSQLiteデータベースのCRUD操作
- 10. OpenFileDialogはファイルをあらかじめ選択しています
- 11. 財団&CSS:テキストエリアにあらかじめ用意されたフォームを作成する方法
- 12. 異なるプラットフォームで使用するためにレルムをあらかじめ用意する
- 13. データベースのフォームにフィールドをあらかじめ入力する
- 14. 編集フォームにあらかじめ入力されていないRailsのダイナミックドロップダウン
- 15. Struts1からStruts2への移行、Struts1からStruts2への変換を同等に
- 16. DjangoのURLから取得した添付ファイルをフォームにあらかじめ入力してください
- 17. あらかじめ '参照渡し'変数を設定していますか?
- 18. あらかじめ保存しておいてください。
- 19. 角2材料 - テキスト領域のテキストがあらかじめ用意されていません
- 20. アセットパイプラインがsassをあらかじめコンパイルしていない
- 21. DropDownListFor値をあらかじめ選択していない
- 22. response.sendRedirectを使用してstruts1アクションにリダイレクトできません
- 23. 新しいappdomainアセンブリがあらかじめ定義されていますか?
- 24. javacは固定式をあらかじめ計算していますか?
- 25. JSP/struts1.xアクションからフォームデータをPHPに渡します
- 26. Mysqliのオブジェクト指向アプローチを使用してフォームをあらかじめ入力する方法は?
- 27. Select2 - Sortelectableをあらかじめ選択してください
- 28. あまりにも多くの変数をあらかじめ用意したステートメントにバインドする方法が短くなっています
- 29. 以前に選択したオプションのフォームをあらかじめロードする
- 30. JavaFXアプリケーション(あらかじめロードされているものを使用)は早めに終了します
このコードは、なぜ人々がStruts 1からチャンスを得た直後に移動したのかを思い出させます。つまり、悪夢なのですが、ユーザーの名前でフォームを取得するだけです:( –
@tusar:複数ページ形式の問題があります(編集モードで)ユーザーが行った変更を考慮せずにフォームを再ポップするボタンをクリックすると、フォームが表示されます。 – Sefran2
@Cricket、こんにちは!私はあなたのブラウザにキャッシュするためにその問題に取り組んでいると思います。 – tusar