首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

深入分析 jsp引出文件之关键

2013-02-04 
深入分析 jsp引入文件之关键本帖最后由 bonlog 于 2013-01-16 16:55:13 编辑在网站的多语言中常用此法子。e

深入分析 jsp引入文件之关键
本帖最后由 bonlog 于 2013-01-16 16:55:13 编辑 在网站的多语言中常用此法子。
enlish.jsp


<%
String index="Home";
%>

chinese.jsp

<%
String index="主页";
%>

我们用index来引入enlish.jsp
<%if(lang.equals("chinese")){ %>//当session传来的lang是chinese但显示中文,英文就加载另一个文件
<%@include file="language/chinese.jsp" %>
<% }else{ %>
<%@include file="language/english.jsp" %>
<%} %>
<div id="header">
<div class="logo">
    <img src="image/logo.gif">
    </div><!--logo-->
    <div class="lang">
    <ul>
        <li><a href="javascript:void(0);">-中文版</a></li>
            <li><a href="">-English</a></li>
        </ul>
    </div><!--lang-->
<div class="clear"></div>

        <li><a href="index.html"><%=index %></a></li> //为何要报错啊?为何不能引用 啊 

//为何不能用啊?
但是这样写就可了,就是我不加if判断时,又可以了


<%@include file="language/chinese.jsp" %>

<div id="header">
<div class="logo">
    <img src="image/logo.gif">
    </div><!--logo-->
    <div class="lang">
    <ul>
        <li><a href="javascript:void(0);">-中文版</a></li>
            <li><a href="">-English</a></li>
        </ul>
    </div><!--lang-->
<div class="clear"></div>

        <li><a href="index.html"><%=index %></a></li>//此变量又可以使用了了


何人可以解释一番啊?
[解决办法]
引用:
既然用了if那么就有可能不进入~~~
既然有可能不进入、那么你的index就有可能不被创建、没有被创建的变量怎么能够去使用它呢!
可以这样写
Java code?12345678910111213141516171819<%    String lang = "chinese";    String indexName = "";    if(lang.equals……


我的解释有问题!!!
只能这么说!
在if里面引入的jsp页面、那么它的变量只能算是局部变量!
局部变量是不能全局引用的!
[解决办法]
引用:
引用:index页面定义一下index变量:
<%String index;%>

enlish.jsp,chinese.jsp
改一下:
<%index="Home";%>都定义了,你再读一边

就算不include,你定义的位置也是在if块里,变量只存在于if块,在if块外调用里面的变量除非是静态变量,否则是调不到的。
[解决办法]
引用:
引用:
index页面定义一下index变量:
<%String index;%>

enlish.jsp,chinese.jsp
改一下:
<%index="Home";%>都定义了,你再读一边



index.jsp定义了?在哪?我怎么没看见。
就算你定义了,位置肯定也不对。
[解决办法]
虽然逻辑上是没问题  不过好像java语法不支持在if else 里定义的变量在外面引用
[解决办法]
jsp我不是很熟。
只是简单的设想了一下。这个程序如果改成
servlet的话。会不会就成了
String index="Home";
String index="主页";
if(){
System.out.prinln(index);
}else{
System.out.prinln(index);
}
而不是你设想的
String index="主页";
if(){
String index="Home";
System.out.prinln(index);
}else{
String index="主页";
System.out.prinln(index);
}
你打开class文件看一下。。只是个人感觉应该是是第一种

热点排行