[实训]ssh中struts2中的InputStream对象

来源:互联网 发布:网站授权码系统源码 编辑:程序博客网 时间:2024/06/08 16:39

在ssh中,inputstream对象一般是ssh自己内部使用的对象,即对请求和相应的形式都是输入输出流的形式。因此在ssh中如果有inputstream对象,或是有getInputStream方法时,可能会出现不按照正常要求来,会自动执行该方法的情况。

在项目中,由于是安卓客户端-服务器后台的形式,所以交互的形式一般都是字符串的形式,因此我在项目中使用的全是将数据输入到inputstream对象中的形式,进而作为响应返回。

配置如下:

在struts.xml的配置文件中,action的请求设置:

        <action name="user_*" class="controller.UserInfoAction" method="{1}">            <result type="stream">                <param name="contentType">text/html</param>                <param name="inputName">inputStream</param>            </result>        </action>

此处返回的结果指定为流的方式,然后随后定义contentType和name,与该类中的对象进行映射。所以,在类中的代码为:

    private InputStream inputStream;        public InputStream getInputStream() {        return inputStream;    }    public void setInputStream(InputStream inputStream) {        this.inputStream = inputStream;    }

即设置一个与result中name相同的对象并设置get和set方法,且主要该类要继承SessionAware接口。

经过上述设置之后,在每个方法中进行响应返回时,便可编写如下代码:

    public String changePwd() {        String result = "failed";        int status = -1;        //省略业务流代码        result = status + "";        inputStream = MsgUtil.sendString(result);        return SUCCESS;    }

直接将数据写入inputStream对象,然后返回,响应便被返回。从而完成对一个请求的响应,返回响应字符串。

以上。