我的JSP页面有类似条目:如何在不刷新页面的情况下保存文件?
demo.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()
。
其实我已经尝试过阿贾克斯,但按钮不起作用..
这是我做过什么:
- 新增
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
- 新增
<sx:head />
- 这部分我是困惑:我试过
(a)<s:submit value="Save" method="saveTemplate" theme="ajax" />
但这里显示错误:“FreeMarker模板错误!表达式parameters.pushId在模板/ ajax/submit.ftl的第103行第6列未定义。 (b)<sx:submit value="Save" method="saveTemplate" />
但这里按钮不起作用。什么都没有发生。
任何人都可以帮忙吗?
使用Ajax请求。 –
使用这个插件http://tutorialzine.com/2013/05/mini-ajax-file-upload-form/ – Rab
@AleksandrM我更新与我有什么用Ajax尝试过的问题。 – abyin007