最近,在研究nutz,非常好用的框架!我花了一天的时间,按照wendal的视频做了一个简单的登陆功能,在类MainModule中的注解@Ok(“raw”)时候,访问http://localhost:8080/nutz/usr/ping方法返回正常,
我的工程目录
MainModule类
运行后的结果
A
但是我在使用json注解时候,就出现
注意,这是IE浏览器,IE浏览器,IE浏览器,重要事情说三遍!
这是为什么呢,而且控制台也报错
这是类UserModule
package net.zosef.nutz.module;
import java.util.Date;
import javax.servlet.http.HttpSession;
import net.zosef.pojo.User;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Strings;
import org.nutz.log.Log;
import org.nutz.log.Logs;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Attr;
import org.nutz.mvc.annotation.Param;
@IocBean
@At("/usr")
public class UserModule {
private static final Log log = Logs.get();
@Inject
private Dao dao;
@At
public boolean login(@Param("name")String name,
@Param("passwd")String passwd,
HttpSession session){
if (Strings.isBlank(name) || Strings.isBlank(passwd)){
return false;
}
name = name.trim().intern();
passwd = passwd.trim().intern();
User user = dao.fetch(User.class, Cnd.where("name","=",name).and("passwd","=",passwd));
if (user == null)
return false;
session.setAttribute("me", user);
return true;
}
@At
public void logout(HttpSession session){
session.invalidate();
}
@At
public User me(@Attr("me")User user) {
return user;
}
@At("/ping")
public Object ping(){
log.debug("log==="+dao);
System.out.println("ping 方法");
return new Date();
}
}
最后,在nutz社区请教了一下wendal大神,大神秒回复,在类MainSetup的init方法开始的地方,加入一句 UTF8JsonView.CT= "text/plain";,再重新访问方法,一切OK!
package net.zosef.nutz;
import net.zosef.pojo.User;
import org.nutz.dao.Dao;
import org.nutz.dao.entity.annotation.Table;
import org.nutz.log.Log;
import org.nutz.log.Logs;
import org.nutz.mvc.NutConfig;
import org.nutz.mvc.Setup;
import org.nutz.mvc.view.UTF8JsonView;
import org.nutz.resource.Scans;
public class MainSetup implements Setup {
private static final Log log = Logs.get();
public void init(NutConfig config) {
log.debug("config ioc== " + config.getIoc());
UTF8JsonView.CT = "text/plain";
Dao dao = config.getIoc().get(Dao.class);
for (Class<?> klass : Scans.me().scanPackage("net.zosef.pojo")){
if (null != klass.getAnnotation(Table.class))
dao.create(klass, false);
}
if (dao.count(User.class) == 0) {
User admin = new User();
admin.setName("admin");
admin.setPasswd("123456");
dao.insert(admin);
}
}
public void destroy(NutConfig config) {
}
}