私のJSPページには次のようなエントリがあります:
デモ.jsp:
<s:form action="demo" theme="simple">
Enter the location and filename for template to be saved (eg: C:\temp\a.xml)
<s:textfield name="fileLoation" id="FileLoationID" />
<s:submit value="Save" method="saveTemplate" />
</s:form>
struts.xml:
<action name="demo" class="com.test.action.DemoAction" >
<result name="preview">/jsp/demo/preview.jsp</result>
<result name="save">/jsp/demo/demo.jsp</result>
<result name="success">/jsp/demo/demo.jsp</result>
<result name="error">/loginError.jsp</result>
</action>
アクション クラス:
public String saveTemplate() {
try {
previewTemplate();
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
DOMSource source = (DOMSource) animalTemplateDetails.get("xmlStringDOMSource");
File file = new File(fileLoation);
file.getParentFile().mkdirs();
StreamResult result = new StreamResult(file);
transformer.transform(source, result);
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "save";
}
現在のプロセス:
- 「C:/temp/abc.xml」のようなパスを指定しました
- [保存] をクリックします。
- アクション クラス メソッド saveTemplate() に移動し、ファイルを保存します。そして「保存」を返します
- 以降、同じページにリダイレクトされます
<result name="save">/jsp/demo/demo.jsp</result>
私の要件:
- 「C:/temp/abc.xml」のようなパスを指定しました
- [保存] をクリックします。
- ページの更新がなければ、アクション クラス メソッドをヒットする必要があり
saveTemplate()
ます。
実際に私はajaxで試しましたが、そのボタンは機能していません..
これは私がしたことです:
- 追加した
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
- 追加した
<sx:head />
- この部分は私が混乱しています:私は試しました
(a)<s:submit value="Save" method="saveTemplate" theme="ajax" />
しかし、ここにエラーが表示されます:「FreeMarkerテンプレートエラー!Expression parameters.pushIdは、103行目、template/ajax/submit.ftlの6列目に未定義です。」
(b)<sx:submit value="Save" method="saveTemplate" />
しかし、ここではボタンが機能していません。何も起こっていません。
誰でも助けることができますか?