谁会?在jsp页面定义函数并调用!追加!!

来源:百度知道 编辑:UC知道 时间:2024/05/31 15:52:24
我在jsp页面定义一个
<%
public void write()
{
out.println("x");
}
%>
1.为什么总是提示public void“放错位置了构造”,是不是在jsp页面里不能定义函数,那像这样这么小的函数大家都怎么定义的,在bean里面?

2.如果可以在jsp页面里直接定义函数,比如write(),想在本页调用哪个,我该怎么调用它呢?

jsp是可以在页面里直接定义函数的。不过需要加上
<%!
%>
加了!表示是声明类或者方法。你这里会出错的原因是因为out这个对象,这个对象是在_jspService这个方法里才定义的,而你如果是在声明方法的时候调用out对象,由于方法声明是在执行_jspService之前,所以会出错。
你的代码可以改成
<%! public void write(JspWriter out)
throws java.io.IOException, ServletException {
try {
out.println("adfasdfadf");
} catch (Exception e) {}
}%>
然后可以用下面的方式调用这个方法
<% write(out);%>

1.如果真要在JSP里定义函数,应该这样:
<%!
public void write(){
out.println("x");
}
%>

不过,除非很小的项目,否则一般不会这样做。等你熟悉了JSP,jsp里根本不能出现这样的业务逻辑,不然你要被老板骂死,因为这样的代码可为何性很烂

2.直接调用就行了。

学习JSP,强烈建议看 Head First Servlet & Jsp,迅雷上搜搜,也有中文的

加油!加油!

不能在jsp里面直接调用函数,因为你在jsp里面所有的代码都会被服务器编译成java代码放在xxx_jsp.java文件中的 _jspService方法里面,我们知道,在一个方法里面是不能定义另外一个方法的,只能调用!

所以,如果你想用函数,可以像你所说的,可以在bean中,也可以在后台servlet控制类来处理. 不过想你这样打印一字符串这样简单的函数,随便一个script就可以解决的
funtion printStr(){
document.getElementBy