《JSP开发技术》课程实验指导书实验3自动生成英文界面一实验目的:学习使用Myeclipse开发Web项目,综合使用JavaBean,JSTL标签及表达式语言EL。二实验内容:编写一个JavaWeb项目,实现自动生成英文界面的功能。该项目包含三个页面,在基本信息页面输入用户的基本信息及文本框数目和复选框包含条目数,在第二个页面近一步输入文本框题目和复选框的值与文本信息,在第三个页面显示刚才输入中文信息的英文翻译构成的页面。三实验步骤:1、创建的项目名称为EnglishPagesProj2、在根目录下创建basicInput.jsp,该页面包含四个文本输入框,2个label标签用于提示输入范围,一个提交按钮。如下图所示。3、建立infoInput.jsp页面。如果在baisicInput.jsp页面中输入以下信息,点击提交按钮则infoInput.jsp页面显示其中,第一行显示用户+上一页输入的姓名+先生(如果性别为男)/女士(如果性别为女)+您好!以下根据上一页面输入的数目自动生成,有2个文本输入框,则需要继续输入这两个文本输入框的中文标题,复选框的标题,有3个复选框项目,则需要分别输入每个项目的value值和显示的text文本3、创建bean.TranslatorBean类,包含三个成员变量,chineseWord表示输入的中文,englishWord表示对应翻译的英文,data存储中文及对应英文的翻译,还需要创建构造方法和对应属性的get/set方法。如果设置chineseWord为”姓名”,则获取englishWord属性值为”name”,如果data中没有对应的chineseWord,则englishWordd的值为chineseWord+”的英文”,data中存储的信息如下图:4、创建englishPage.jsp页面,依据infoInput.jsp页面输入的中文信息,调用TranslatorBean对象获取对应的英文翻译并显示在页面上。比如infoInput.jsp中输入以下信息:则点击”生成英文界面”按钮后,显示englishPage.jsp如下图所示:实验报告中手写提交TranslatorBean.java和三个页面文件的body标签部分。提示信息:0.上机时可实现有关文本框相关部分的内容,下课后再实现复选框相关部分的内容。1.该项目的难点在于,页面生成的文本框的name等属性都是动态生成的,该属性可由EL生成。在EL中,想连接两个字符串”a””b”,不能使用${”a”+”b”}的方式,但可以使用如下方式实现字符串连接:${”a”}${”b”}。在infoInput.jsp中动态生成文本输入框可参考以下代码实现:c:setvar=textFieldNamevalue=${\textName\}${i}scope=page/文本框${i}标题:inputtype=textname=${textFieldName}/br/其中i变量是外层c:forEach中定义的,EL属性值的形式为value=”${表达式}”,此时表达式中不能再出现””,如果表达式中需要出现字符串,则可以采用单引号’’或者转义符\”\”代替,因此最终属性形式为value=${\textName\}${i}或value=${‘textName’}${i}。2.中文参数乱码问题,根本上是由于Tomcat在传参时使用ISO8859-1的方式进行编码造成的。令所有文件的编码为UTF-8,乱码分为两种情况解决:(1)JSP页面间传递参加,如basicInput.jsp姓名文本框输入的姓名需要在infoInput.jsp中显示。解决方法为basicInput.jsp中的form表单的提交方式改为post,在infoInput.jsp文件引入自定义标签后即添加jsp代码片段%request.setCharacterEncoding(UTF-8);%,即可在infoInput.jsp中正常取出中文参数显示。(2)JSP向JavaBean中传值时,如englishPage.jsp调用TranslatorBean。需要在TranslatorBean.java文件合适地方使用如下代码进行转换: