layout="absolute"
backgroundGradientAlphas="[1.0, 1.0]"
backgroundGradientColors="[#11E3E6, #EBF9F8]">
//ActionScpipt代码
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();
}
}
]]>
//这里已post方式提交,至于传递参数主要有两种方式,第一种是URL后面加参数,如*.do?param1=**,个人倾向于第二种,就是下面这种,使用,showBusyCursor="true"表示等待时鼠标形状为等待状态
{username.text}
{password.text}
//Flex验证框架,很强大,还有PhoneNumberValidator,EmailValidator等等
trigger="{btn}" triggerEvent="click"
requiredFieldError="用户名必填" />
trigger="{btn}" triggerEvent="click"
requiredFieldError="密码必填" />
//下面是组件,这里是随意界面拖拉排的版,不规范,flex的css有待提高,layout有三种属性,分别代表横向纵向及绝对定位,这里是绝对定位,panel组件给人感觉类似于html的div
客户端代码就这么多了,很简单的几个组件及函数
服务端代码,简单起见,所有业务逻辑就在控制层完成吧
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的支持是相当强大啊。
分享到:
2009-01-15 11:55
浏览 3807
评论
1 楼
ln987604356
2014-03-07