如果想返回 json 数据类型 可以使用 fastjson-1.1.32.jar 包, 能实现 String 与 object类型的转换。
配置web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"
>
<struts>
<constant name="struts.multipart.maxSize" value="102400000"/>
<package name="default" extends="struts-default">
<action name="login_*" class="com.cery.Login" method="{1}">
<result name="success" type="stream">
<!-- 指定stream生成的 响应数据的类型 -->
<param name="contentType">text/html</param>
<!-- 指定由 getTip()方法返回 输出结果的 inputstream 字节流 -->
<!-- 其中 tip 对应Login类中的 private tip = null; -->
<param name="inputName">tip</param>
</result>
</action>
</package>
</struts>
接着书写Action类:
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
public class Login {
private String tip=null;
public InputStream getTip() throws UnsupportedEncodingException{
//返回 字节流并 改变编码集
return new ByteArrayInputStream(tip.getBytes("utf-8"));
}
public String login(){
HttpServletRequest request = ServletActionContext.getRequest();
String name = request.getParameter("name");
if(name.equals("123")){
tip="密码正确";
System.out.println("<p>suc</p>");
}else{
tip="密码错误";
System.out.println("fail");
}
return "success";
}
}