1. ajax请求返回text
function creatTemp(id,bol,name){
var arr;
//ajax请求返回text的写法,要记住,不能再错误了.
$.ajax({
type: "POST",
async:false,
url: "sysparams.html",
data:"dataName="+name+"&ID="+id+"&simpType="+bol,
error: function(){
alert("error");
},
success: function(msg){
arr = msg;
}
});
//async:false,这句话很重要,否则在这里alert(arr)显示未定义,同时return的值也是不正确的.
return "<%=request.getScheme()%>://<%=request.getServerName()%>:<%=request.getServerPort()%><%=request.getContextPath()%>/sysTemplate/" + arr ;
}
<package name="bb" extends="default">
<action name="sysparams" class="cn.xue.shavi.webapp.action.SysparamAction" method="list"/>
<action name="editSysparam" class="cn.xue.shavi.webapp.action.SysparamAction" method="edit">
<result>/WEB-INF/pages/sysparamForm.jsp</result>
</action>
</package>
public void list() {
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
if(simpType){
String idsString = ID.toString();
int length = idsString.length();
for(int i = 0;i<5-length;i++){
idsString = "0"+idsString;
}
out.print( sysparamManager.createSimple(idsString,dataName) );
}else {
out.print( sysparamManager.createTempName(ID));
}
out.flush();
out.close();
}
<package name="default" extends="struts-default">
<interceptors>
<!-- Interceptor to handle allowing only admins to certain actions -->
<interceptor name="adminOnly" class="adminInterceptor"/>
<!-- Copied from struts-default.xml and changed validation exclude methods -->
<interceptor-stack name="defaultStack">
<interceptor-ref name="exception"/>
<interceptor-ref name="alias"/>
<interceptor-ref name="servletConfig"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="i18n"/>
<interceptor-ref name="chain"/>
<interceptor-ref name="debugging"/>
<interceptor-ref name="profiling"/>
<interceptor-ref name="scopedModelDriven"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="checkbox"/>
<interceptor-ref name="staticParams"/>
<interceptor-ref name="params">
<param name="excludeParams">dojo/..*</param>
</interceptor-ref>
<interceptor-ref name="conversionError"/>
<interceptor-ref name="validation">
<param name="excludeMethods">cancel,execute,delete,edit,list</param>
</interceptor-ref>
<interceptor-ref name="workflow">
<param name="excludeMethods">input,back,cancel,browse</param>
</interceptor-ref>
</interceptor-stack>
<interceptor-stack name="fileUploadStack">
<interceptor-ref name="fileUpload"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
<interceptor-stack name="adminCheck">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="adminOnly"/>
</interceptor-stack>
</interceptors>
2. rtf文件上传
$("#saveButton").click(function(){
document.all.FramerControl1.HttpInit();
document.all.FramerControl1.HttpAddPostString("ID","10000");
document.all.FramerControl1.HttpAddPostCurrFile("upLoadFile", "");
var url = "/upLoadFile.html";
document.all.FramerControl1.HttpPost( url );
//上传文件的struts.xml配置很重要,否则报错误.
alert("保存成功!");
});
<package name="aa" extends="struts-default">
<action name="upLoadFile" class="cn.xue.shavi.webapp.action.SysparamAction" method="upLoadFile">
<interceptor-ref name="fileUploadStack"/>
<result>/WEB-INF/pages/sysparamList.jsp</result>
</action>
</package>
public String getSavePath() {
return ServletActionContext.getServletContext().getRealPath("/fileTemplate");
}
public String upLoadFile() {
FileOutputStream fos=null;
FileInputStream fis=null;
String inFilePath = null;
inFilePath = getSavePath()+"//"+ID+".rtf";
try {
File file = new File(inFilePath);
fos=new FileOutputStream(file);
fis = new FileInputStream(upLoadFile);
byte[] buffer=new byte[1024];
int len=0;
while((len=fis.read(buffer))>0){
fos.write(buffer,0,len);
}
} catch (Exception e1) {
e1.printStackTrace();
}finally{
try {
fos.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return SUCCESS;
}