昨天周五,决定放松一下没有写日志,但是进度还是要记录的,就今天补上吧。
之前在用户登录之后直接跳转到登录成功页面,没有将登录用户的信息传递过去,因此在后面的板报发布操作中拿不到发布人的信息,为了改进这一点需要考虑FLEX页面间传值的问题。
本来想像JSP中一样将登录人的信息放在session中,但是具体实现起来,在接收页获取的session值总是为空。无奈使用了别的方法。
因为下面这个方法最便于理解了,因此先使用了这个方法,但是得到的一直是空值,目前不晓得问题出在哪,但是先记录下来吧,也许以后可以用。
发送页:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
private function onclik():void{
navigateToURL(new URLRequest("requst_test.swf?a="+Textl.text), "quote");
}
</mx:Script>
<mx:Button x="186" y="202" label="Button" click="onclik();"/>
<mx:TextInput x="141" y="143" id="Textl"/>
</mx:Application>
接收页:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init();" >
<mx:Script>
import mx.controls.Alert;
private function init():void{
Alert.show(this.parameters.a);
}
</mx:Script>
</mx:Application>
最后参考了这个博客,http://www.cnblogs.com/syscceyz/archive/2012/06/17/2552323.html
用其中的方法二成功的实现了FLEX的页面间传值~~。。
在用此方法时,我在接收页定义了一个方法用于拿到传过来的值:
//定义一个方法,拿到传过来的name值
public function getName():String
{
var share:SharedObject=SharedObject.getLocal("cookie","/");
var userName:String=share.data.name;
share.clear(); //被清除了,再次使用得到的值为空
return userName;
}
但是在使用时要注意,不能在用到用户名的地方就调用一次此方法,因此方法中有share.clear();这句,第一次之后再调用只能得到空值。
解决方法:定义一个变量a,a=getName(),多次使用变量即可。
最后对板报的生效时间和失效时间的选择进行了处理,即生效时间不能晚于当前时间,失效时间不能晚于生效时间。
参考博客:http://blog.csdn.net/hongtashan11/article/details/7290151
运行效果:
只提取生效时间和失效时间之内板报的SQL语句:
select * from content where getdate() <=[finish] and getdate()>=[start]