myeclipse会自动编译保存的.java文件,但是我保存的时候有一行没有被编译而且很重要。
看到第六行了吗,这行始终没有编译,总是if(!isTokenValid(request, true)),有个!号没有去掉,为什么啊?
java 代码
- //单张图片上传???? ??
- ????public?ActionForward?sendOnePhoto(ActionMapping?mapping,?ActionForm?form,???? ??
- ????????????HttpServletRequest?request,HttpServletResponse?Response){???? ??
- ????????System.out.println("-------------------开始上传单张图片---------------");???? ??
- ????????System.out.println("+++++++++++++++++++++++++++"+isTokenValid(request,true));???? ??
- ????????if(isTokenValid(request,true)){
- ????????????System.out.println("---进来了,进来了,进来了---");???? ??
- ????????????PhotoManageForm?photoForm=?(PhotoManageForm)form;???? ??
- ???????????????
第一次我在第六行加了个“!” ,编译
第二次我把“!”去了,编译,查看.class文件,发现.class中的“!”没有去掉
1 楼 daoger 2007-01-16
一堆代码,没找到“!”在哪里!
2 楼 simohayha 2007-01-16
把你的 !用 红字显示出来.
3 楼 apollo_r 2007-01-16
是没有,第六行,斜体的,我原先加了个“!”,后来去掉了,以后编译就一直在了
再说一点,是.java中没有“!” .class中有“!”
不知道我说清楚没有
再说一点,是.java中没有“!” .class中有“!”
不知道我说清楚没有
4 楼 apollo_r 2007-01-16
又有个新问题了,我同事在搞这段代码的时候,
isTokenValid(request,true)是等于true的,但是没有跳进if里面,而是跳出去了,为什么啊?。。好郁闷啊
isTokenValid(request,true)是等于true的,但是没有跳进if里面,而是跳出去了,为什么啊?。。好郁闷啊
5 楼 抛出异常的爱 2007-01-16
删除文件重建文件
6 楼 apollo_r 2007-01-17
删除重写。。myeclipse关了重开。。重构。。tom重启。。。清缓存。。重启机子。。都做了。。但是还是不行
现在在源文件中isTokenValid(request,true)前加个“!”号,.class文件中反而没有“!”号了。。不加.class文件中反而有。。这是为什么咧?这不应该啊
现在在源文件中isTokenValid(request,true)前加个“!”号,.class文件中反而没有“!”号了。。不加.class文件中反而有。。这是为什么咧?这不应该啊
7 楼 花花公子 2007-01-17
.class文件用什么查看啊?不应该能看到你这些东西啊。
8 楼 抛出异常的爱 2007-01-17
文字中有转义符?
9 楼 apollo_r 2007-01-17
反编译.class文件的东东很多的。。可以到网上搜一下
再说明下isTokenValid(request,true)方法是struts提供的方法。。是防止重复提交的。。可以在action中直接调用。。
还有同样是 if(isTokenValid(request,true)){}这段代码,在其他地方用(也是上传)编译后也还是该句,只有这个地方是这样。。
再说明下isTokenValid(request,true)方法是struts提供的方法。。是防止重复提交的。。可以在action中直接调用。。
还有同样是 if(isTokenValid(request,true)){}这段代码,在其他地方用(也是上传)编译后也还是该句,只有这个地方是这样。。
10 楼 抛出异常的爱 2007-01-17
只能去看API了。。。十在不行就看原码吧
你的问题我试不出来
你的问题我试不出来
11 楼 apollo_r 2007-01-17
给的就是源码啊。。。你可以去看看struts的token机制。。。很好用,也很好理解,但是问题是这个action生成的.class与源码的不一样(我指得是该行),在.class中生成的如下:
public ActionForward sendOnePhoto(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse Response)
{
FormFile file;
System.out.println("-------------------开始上传单张图片---------------");
System.out.println("+++++++++++++++++++++++++++" + isTokenValid(request, false));
if(!isTokenValid(request, true))
break MISSING_BLOCK_LABEL_720;
System.out.println("---进来了,进来了-,进来了---");
//以下...
if(!isTokenValid(request, true))看到这条了吧,前面多了个“!”号。。。就是这个原因。。但是别的地方却没有多这个“!”
public ActionForward sendOnePhoto(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse Response)
{
FormFile file;
System.out.println("-------------------开始上传单张图片---------------");
System.out.println("+++++++++++++++++++++++++++" + isTokenValid(request, false));
if(!isTokenValid(request, true))
break MISSING_BLOCK_LABEL_720;
System.out.println("---进来了,进来了-,进来了---");
//以下...
if(!isTokenValid(request, true))看到这条了吧,前面多了个“!”号。。。就是这个原因。。但是别的地方却没有多这个“!”
12 楼 apollo_r 2007-01-19
哦
仔细看了下是反编译的代码有出入。在其他位置反编译的类似代码中和先前的不同,所以才有这个问题。
如先前的.class文件是这样:
if(!isTokenValid(request, true))
break MISSING_BLOCK_LABEL_720;
其他位置类似的.class文件是这样的:
if(isTokenValid(request, true))
{。。。}
这就是不同,但是为什么同样的反编译器,编译类似的代码会有两种不同的解释呢?
仔细看了下是反编译的代码有出入。在其他位置反编译的类似代码中和先前的不同,所以才有这个问题。
如先前的.class文件是这样:
if(!isTokenValid(request, true))
break MISSING_BLOCK_LABEL_720;
其他位置类似的.class文件是这样的:
if(isTokenValid(request, true))
{。。。}
这就是不同,但是为什么同样的反编译器,编译类似的代码会有两种不同的解释呢?