博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2学习笔记(8)-------struts2的ajax支持
阅读量:7056 次
发布时间:2019-06-28

本文共 2096 字,大约阅读时间需要 6 分钟。

     

          struts2支持一种stream类型的Result,这样的类型的Result能够直接向client浏览器响应二进制,文本等。

     我们能够再action里面生成文本响应,然后在client页面动态载入该响应就可以。

   直接看样例:

   

public class LoginAction {	private String user;	private String pass;	private InputStream inputStream;		public InputStream getInput(){		return inputStream;	}			public String getUser() {		return user;	}	public void setUser(String user) {		this.user = user;	}	public String getPass() {		return pass;	}	public void setPass(String pass) {		this.pass = pass;	}	public String login() throws UnsupportedEncodingException{		inputStream = user.equals("zhangsan")&&pass.equals("123")?

new ByteArrayInputStream("恭喜你,登录成功".getBytes("utf-8")): new ByteArrayInputStream("登录失败".getBytes("utf-8")); return "success"; } }

这个Action的核心主要是getInput方法,它返回的二进制流将直接输出给浏览者。这将使用stream类型的result来完毕。注意:这个getInput方法名能够随便换,但必须是这样的类型get+"XXX"(应该是反射机制所用吧),这个“XXX”必须跟param为inputName的值相应!

!!

接下来看struts.xml的配置:

> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="user" extends="struts-default"> <action name="loginAction" class="com.sinosoft.epicc.action.LoginAction" > <result name="success" type="stream"> <param name="contentType">text/html</param> <param name="inputName">input</param> </result> </action> </package> </struts>

然后使用jquery封装的ajax调用:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>              My JSP 'login.jsp' starting page    	
username:
密码:
执行结果例如以下:

比較简单~~~~还用过一种ajax返回的方法,是直接response.write,这个也比較经常使用

你可能感兴趣的文章
20160503-spring入门1
查看>>
linux开发模式
查看>>
struct to point
查看>>
Spring AOP 知识点入门
查看>>
nginx安装部署
查看>>
1102 面积最大的矩形
查看>>
JavaWeb项目(SSM)准备工作
查看>>
python 字符串操作
查看>>
C# to IL 2 IL Basics(IL基础)
查看>>
Flocks,Herds and Schools: A Distributed Behavioral Model
查看>>
期末作业验收
查看>>
VS调试技巧之----Attach to Process
查看>>
HTML+CSS+JAVASCRIPT 总结
查看>>
比较汇编指令 LEA 和 MOV
查看>>
iOS多线程之4.GCD简介
查看>>
绘制双坐标轴的图形3-不同的plot类型
查看>>
贪吃蛇源代码分析
查看>>
VB中StdPicture尺寸(Width,Height)转像素单位
查看>>
初来乍到
查看>>
TextKit学习通过boundingRectWithSize:options:attributes:context:计算文本尺寸
查看>>