本文目录一览:
java代码直接写在JSP页面上有什么弊端
不符合MVC思想,而且给程序的扩展维护,人员的分工合作带来很大的困难,美工只懂HTML代码,而大量的java代码在页面,显而易见!程序的可读性差,你自己想想,大量的代码全部混合在页面看代码有多费力
jsp和Java后台数据如何交互
%
String path = request.getContextPath();
%
获取jsp所在工程的名称
var ids = new Array();
$.ajax({
type : "POST",
contentType : 'application/json',
url : '%=path%/ui/product/havePsmPackage',
data:JSON.stringify(ids),
async :false,
dataType : "json",
success : function(data) {
},
error:function(){
}
});
1、前台如果传的是一个集合,后台可以使用参数 @RequestBody ListString ids 来接收
2、如果前台是这种传值方式 data:{"name":name,"id":id},
那后台可以通过创建一个字段名称对应的实体类来接收
或者使用String name = request.getParameter("name")的方式来接收
3、如果ajax选择的GET方法,那后台方法的字段名称和url的入参名称保持一致就能接收到数据了
4、window.location.href="%=path%/ui/psmpackage/toPsmPackageList";
这是跳转到新页面的方法
@RequestMapping(value = "/toPsmPackageList")
public String toPsmPackageList(HttpServletRequest request) {
return "psmPackage/psmPackageList";
}
这是后台的接受方式,返回的是对应jsp的文件夹和文件名
页面跳转的方法不需要@ResponseBody注解,而获取返回值的方法则一定要加,不然获取不到返回值
5、window.open(url); 可以在浏览器上新开一个页面。对应的是window.close();
6、如何将数据带到新增的页面
第一:第一个页面通过
window.location.href="%=path%/ui/product/condition?lineCode="+lineCode+"typeCode="+typeCode;传值
在新页面可以通过var lineCode = '%=(String)request.getParameter("lineCode")%'这种方式来取值
第二:后台代码这样处理request.setAttribute("product", result);
input name="id" type="text" value="${product.id}" /
${}来取值。
JSP和JAVA 的问题
JSP是带有Java代码的HTML文件。
带()的表示一个方法被调用了,就是这个()之前那个名字的方法。方法,函数什么的都无所谓的,习惯叫什么就是什么。不过Java社区还是习惯了叫方法。定义类不是用 new 的,new 是产生一个这个类的一个实例的一种方法,当然还有其他的方法。在使用new的时候就是调用了这个类的构造函数,方法的定义,给你一个一般的例子吧,public static void doTest(String param){}
public是访问修饰符,规定了这个方法的开放程度,也就是别的类或者方法对他的访问权限,static指出这个方法是静态的,void如同C/C++一样,无返回类型,另外方法名doTest,参数是String类型的,抽象类里还有abstract方法,这种方法没有做出实现,比如,public abstract String XXX();然后就没有方法体了。。。