NutzCN Logo
问答 @Param不添加在某些时候取不到请求上面的参数
发布于 3307天前 作者 qq_78ea4cfe 3266 次浏览 复制 上一个帖子 下一个帖子
标签: mvc
/**
	 * 登录提交
	 * 
	 * @param userName
	 * @param password
	 * @param rememberMe
	 * @return
	 */
	@At
	@POST
	@Filters
	public Result login(@Param("userName") String userName, @Param("password") String password, @Param("rememberMe") boolean rememberMe) {
		Result result = shiroUserService.login(userName, password);
		if (result.isSuccess()) {
			User user = (User) result.getData().get("loginUser");
			_putSession(SessionKeys.SESSION_USER_KEY, user);
			if (rememberMe) {
				_addCookie("brt_museum", DES.encrypt(userName + ":" + password, DefaultDESKey.getKey()), 2 * 7 * 24 * 3600);
			}
		}
		return result;
	}

这个可以正常取到参数

/**
	 * 登录提交
	 * 
	 * @param userName
	 * @param password
	 * @param rememberMe
	 * @return
	 */
	@At
	@POST
	@Filters
	public Result login(String userName, String password, boolean rememberMe) {
		Result result = shiroUserService.login(userName, password);
		if (result.isSuccess()) {
			User user = (User) result.getData().get("loginUser");
			_putSession(SessionKeys.SESSION_USER_KEY, user);
			if (rememberMe) {
				_addCookie("brt_museum", DES.encrypt(userName + ":" + password, DefaultDESKey.getKey()), 2 * 7 * 24 * 3600);
			}
		}
		return result;
	}

这样在某些时候就取不到参数了,一路null

8 回复

全加上@Param

貌似我发现规律了,sun-jdk就没得问题,open-jdk就会出现取不到参数的情况

@qq_78ea4cfe 严格来说,是ecj,也就是eclipse编译器编译的才会100%正常

也许晚点我加上jdk8的支持,因为jdk8现在带参数名了,但还是有坑

来自炫酷的 NutzCN

那么 maven项目是不是加上

<dependency>
    <groupId>org.eclipse.jdt.core.compiler</groupId>
    <artifactId>ecj</artifactId>
    <version>3.5.1</version>
</dependency>

就OK了呢

@qq_78ea4cfe 你试试咯

来自炫酷的 NutzCN

同遇到 . 加个 @Param 好了.

关于JDK8参数名的获取, 已提交代码, 会出现在1.r.54中

@wendal 我换最新版本 ,发现也有这个问题。
版本号:Nutz 1.r.57

添加回复
请先登陆
回到顶部