这里项目主要是以java web为例,在传统B/S项目中使用flex主要就是其通信方式,下面介绍几种思路:
第一种是HttpService方式,实例开路:helloworld太单调,以一个完整的登陆为例吧。
首先是Flex客户端代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
backgroundGradientAlphas="[1.0, 1.0]"
backgroundGradientColors="[#11E3E6, #EBF9F8]">
//ActionScpipt代码
<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.controls.Alert;
//登陆成功进入的方法
public function handlePlain(event:ResultEvent):void{
var str:String = event.result as String;//获得服务端返回结果
success.text=str;
}
//登陆失败触发的方法
public function handleFault(event:FaultEvent):void{
Alert.show(event.fault.faultString, "Error");
}
//前台验证(有了下面的flex自带验证框架,这里显得多余。。。。。。)
public function login():void{
if(""==username.text){
trace(username.text.toString());//trace()方法调试时很有用,类似System.out.println()
nameinfo.text="用户名不能为空";
}else
if(""==password.text){
passwordinfo.text="密码不能为空";
}else{
testHttp.send();
}
}
]]>
</mx:Script>
//这里已post方式提交,至于传递参数主要有两种方式,第一种是URL后面加参数,如*.do?param1=**,个人倾向于第二种,就是下面这种,使用<mx:request>,showBusyCursor="true"表示等待时鼠标形状为等待状态
<mx:HTTPService id="testHttp" method="pOST" url="http://localhost:8888/szsygl/login.do" showBusyCursor="true" result="handlePlain(event);" fault="handleFault(event);" >
<mx:request xmlns="">
<username>
{username.text}
</username>
<password>
{password.text}
</password>
</mx:request>
</mx:HTTPService>
//Flex验证框架,很强大,还有PhoneNumberValidator,EmailValidator等等
<mx:Validator id="pnV" source="{username}" property="text"
trigger="{btn}" triggerEvent="click"
requiredFieldError="用户名必填" />
<mx:Validator id="checkpassword" source="{password}" property="text"
trigger="{btn}" triggerEvent="click"
requiredFieldError="密码必填" />
//下面是组件,这里是随意界面拖拉排的版,不规范,flex的css有待提高,layout有三种属性,分别代表横向纵向及绝对定位,这里是绝对定位,panel组件给人感觉类似于html的div
<mx:panel x="203.5" y="93" width="761" height="381" layout="absolute">
<mx:Button x="324" y="169" id="btn" label="登陆" width="54" fontSize="12" click="login()" />
<mx:TextInput x="324" y="106" id="password" fontSize="12" displayAsPassword="true"/>
<mx:Button x="432" y="169" label="重置" fontSize="12"/>
<mx:TextInput x="324" y="49" id="username" fontSize="12"/>
<mx:Text x="239" y="48" text="用户名:" width="77" fontSize="16" height="49"/>
<mx:Text x="239" y="105" text="密码:" fontSize="16" />
<mx:Text x="492" y="49" text="" id="nameinfo" width="156" height="24" fontSize="14" color="#F50F0A"/>
<mx:Text x="492" y="106" text="" id="passwordinfo" width="156" height="24" fontSize="14" color="#F50F0A"/>
<mx:Text x="324" y="10" id="success" text="" width="160" height="31" fontSize="15" color="#F50F0A"/>
</mx:panel>
</mx:Application>
客户端代码就这么多了,很简单的几个组件及函数
服务端代码,简单起见,所有业务逻辑就在控制层完成吧
package cn.tohot.szsygl.flextest;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import cn.tohot.szsygl.common.BaseDao;
import cn.tohot.util.security.SecurityUtils;
/**
*flex测试类
* @version 1.0 2009-1-14
* @author zhanglu
* @since JDK 1.5.0_8
*/
public class FlexTestServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
private static final String LOAD_YH_DM = "from Yhxx where yhdm=?";
private static final String LOAD_YH_MM = "from Yhxx where yhdm=? and yhmm=?";
private BaseDao dao;
//从spring工厂里面得到初始化数据库操作接口
@Override
public void init() throws ServletException {
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
dao = (BaseDao)ctx.getBean("dao");
}
public void doGet(HttpServletRequest request,HttpServletResponse response){
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {
String name = request.getParameter("username");
String password = request.getParameter("password");
response.setCharacterEncoding("utf-8");
printWriter writer = response.getWriter();
if(null==name||"".equals(name)||!checkname(name)){
writer.write("用户名不正确");
}else if(null==password||"".equals(password)||!checkpassword(name,password)){
writer.write("密码不正确");
}else{
writer.write("成功登陆");
}
writer.flush();
writer.close();
}
//验证用户名
private boolean checkname(String name){
List<?> list = dao.getHibernateTemplate().find(LOAD_YH_DM, name);
if(list.isEmpty()){
return false;
}else{
return true;
}
}
//验证密码
private boolean checkpassword(String name,String password){
Object[] values= {name,SecurityUtils.md5Digest(password)};
List<?> list = dao.getHibernateTemplate().find(LOAD_YH_MM, values);
if(list.isEmpty()){
return false;
}else{
return true;
}
}
}
还有些配置文件就不写了,这里传的是Sting,如果是复杂对象,如存放Map的List,可以用XML传输,flex对XML的支持是相当强大啊。
分享到:
相关推荐
4. **配置Flex项目**:在Flex项目的属性设置中,需要配置Flex Build Path,确保其输出目录指向Java Web工程的WebContent/WEB-INF/flex目录,以便Flex编译后的SWF文件能被Java Web工程识别。 5. **编写Flex代码**:...
在Flex客户端,使用`RemoteObject`或`HTTPService`组件来调用JavaWeb服务。`RemoteObject`适用于AMF通信,直接映射Java方法,而`HTTPService`则用于处理HTTP请求。在服务器端,需要配置相应的服务接口和实现,以处理...
- 在Flex中通过Flex Remoting配置连接到Java服务。 6. **部署与测试**: - 将Flex项目生成的SWF文件和相应的配置文件部署到Web应用的Web-INF/flex目录下。 - 将Java Web项目打包成WAR文件,然后部署到Tomcat...
3. **配置BlazeDS**:在Java项目中集成BlazeDS,配置相应的web.xml文件以启用BlazeDS服务,并在Flex项目中配置services-config.xml来指定与后端服务的连接。 4. **创建Spring服务**:使用Spring的注解或XML配置方式...
在服务器端,JavaWeb应用程序通常在Servlet容器(如Apache Tomcat)中运行。Java的强项在于其企业级功能,如Java档案文件(JAR)、Java Servlets和Java Persistence API(JPA)。JAR文件用于打包Java类和资源,而...
前后端分离项目,后端使用javaWeb原生的Servlet编写,前端使用Vue2,结合Element-UI 和Vant-UI进行编写,目前只上传了后端代码,前端代码还在整理 数据库是Mysql8、使用了Redis和JWT用于实现认证授权以及单点登录,...
如果项目中使用了Bootstrap,可以通过其栅格系统来调整表格宽度。Bootstrap的列(Column)类可以用来创建响应式布局,通过`.col-*`类来定义不同屏幕尺寸下的宽度。 3. **JavaScript/jQuery动态调整** 当需要根据...
Flex与Servlet之间的数据交互是JavaWeb开发中的一个重要环节,它涉及到客户端富互联网应用程序(RIA)与服务器端数据处理的协同工作。Flex作为一个基于Adobe Flash Player的前端开发框架,主要用于创建具有丰富用户...
在Flex中,`RemoteObject`组件是实现AMF通信的核心组件之一。它提供了一种简单的方式与远程服务器上的服务进行交互。通过配置`RemoteObject`,可以指定连接信息、服务路径等参数,从而实现调用后端的服务方法。 ###...
在本项目中,Flex被用来设计和实现拓扑图的显示部分,提供良好的可视化效果和用户交互体验。 ActionScript是Adobe Flash Player和Adobe AIR支持的脚本语言,它为Flex提供了编程能力。在这个拓扑图项目中,...
在Flex中,我们可以使用MXML来定义用户界面,包括按钮(代表游戏的三个选项:石头、剪刀、布)和显示结果的文本或图像。ActionScript用于处理用户交互,比如监听按钮点击事件,调用Java后端进行游戏逻辑计算。 在...
5. **添加JavaWeb组件**:为了实现Flex与Java的交互,你需要将JavaWeb组件引入到项目中,这通常包括Servlet、JSP等。 6. **取消创建web.xml**:在配置过程中,应取消创建web.xml的默认设置,转而手动配置适合项目...
### CSS样式表在JavaWeb中的应用 #### 一、为何需要CSS样式表? 在Web开发过程中,CSS(层叠样式表)起到了至关重要的作用。它主要用于控制网页的布局和样式,使得网页更加美观且易于维护。传统的HTML标签提供的...
BlazeDS 整合 Flex HelloWorld 示例是一个初学者入门教程,主要介绍了如何在JavaEE环境中集成BlazeDS和Flex,创建一个简单的远程调用服务。BlazeDS是一个开源项目,提供了与Adobe Flex之间的实时数据交互,使得Flex...
这些服务需要实现特定的接口,这些接口将在Flex中通过AMF调用。 总的来说,这个压缩包提供了从头开始构建Flex和Java集成应用的资源。通过阅读提供的文档,理解AMF通信机制,配置BlazeDS,以及编写和部署Java服务,...
例如,使用Adobe Flash为基础的RIA解决方案,如Flex或ActionScript,可以构建出无需服务器端View层的应用,同时避免了session信息的处理。这使得JavaWeb框架有机会简化其结构,专注于业务逻辑和服务的实现,而不再是...
目前网站中很少有flex与java集成的项目,这个项目做的比较详细,非常好,对于大家学习真的很有帮助,如果没帮助的话,你们可以拍我...我自己也在学习研究中,希望对大家有帮助,大家共同进步...其他废话我也不多说了...
在系统设计上,选择了Eclipse作为开发平台,其强大的集成开发环境为项目的实施提供了便利。系统通过Flex与J2EE服务器的Web Service交互,实现了数据的动态传递。Flex作为一个富互联网应用程序(RIA)框架,使得用户...
在压缩包中的`javascript_src`目录,可能包含了JavaScript的基础教程、示例代码或相关项目的源码,学习者可以通过这些材料理解变量、函数、对象、事件、DOM操作等概念,并逐步掌握JavaScript的编程技巧。 `css+div_...