发现网上大部分关于Jfinal获取前台数据都只介绍了获取Json格式的数据,所以今天就来写一篇文章,全面介绍一下Jfinal各种获取前台数据的方法
首先第一个,获取url中的数据:
在浏览器地址栏上输入访问NewsController中的getData方法的地址,同时传递一个name参数,如下
http://localhost:8080/news/getData?name='张三'
然后在getData方法中获取到name的值,代码如下
注:这里继承的Controller类是Jfinal框架自带的
public class NewsController extends Controller {
public void getData(){
String name = getPara("name");
System.out.println(name);//输出'张三'
}
}
获取前台表单数据封装到普通类对象中:
表单数据如下
<form action="/news/getData" method="post">
<input type="text" name="student.name" >
<input type="text" name="student.age">
<input type="submit"/>
</form>
注意:这里input标签中的name属性的格式必须为:类名首字母小写+类中属性名
创建Student类:(注:如果这里的类名改为Person,那么上面的input标签中的name属性值就应该改为name="person.name"和name="person.age")
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
最后为Controller中代码
public void getData(){
Student student = getBean(Student.class);
System.out.println(student);
}
获取表单数据封装到实体类中
首先,在Jfinal中,和数据库表关联的实体类中是可以不用写字段的,这也是Jfinal的一个优点
比如现在我想要创建一个news的实体类,我只需要让这个类继承Jfinal中的Model类
如下
public class News extends Model<News> {
}
这样我的news实体类就创建成功了,然后在Jfinal的Config类中将news类和数据库中一张表关联起来,这样news类就拥有了表中的属性了
表设计如下
现在想要将前台表单中的数据直接封装成news类的对象,代码如下
表单数据:
<form action="/news/getData" method="post">
<input type="text" name="news.newstitle" ></input>
<input type="submit"/>
</form>
Controller中的代码
public void getData(){
News news = getModel(News.class);//完成news对象封装
System.out.println(news.get("newstitle"));//输出news对象中的newstitle属性
}
获取前台json格式数据封装成对象