在java中的下拉菜单选择后点击提交,在另一个页面接受到的是乱码,是啥原因?现在贴主要的代码求教
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中的下拉菜单选择后点击提交,在另一个页面接受到的是乱码,是啥原因?现在贴主要的代码求教相关的知识,希望对你有一定的参考价值。
<body>
<%@ include file="index-new.jsp"%>
<span class="STYLE1">学生学号</span>
</td>
<td width="108">
<span class="STYLE1"> <%
request.setCharacterEncoding("utf-8");
String s1 = request.getParameter("stuno");
String s2 = request.getParameter("password");
String s3 = request.getParameter("password2");
String s4 = request.getParameter("name");
String s5 = request.getParameter("major");
String s6 = request.getParameter("class");
String s7 = request.getParameter("sex");
String s8 = request.getParameter("emai");
String s9 = request.getParameter("phone");
String s10 = request.getParameter("qq");
String s11 = request.getParameter("grade");
String s12 = request.getParameter("prize");
String s13 = request.getParameter("social");
%> <%=s1%></span>
</td>
</tr>
<tr>
<td>
<span class="STYLE1"></br> 密码</span>
</td>
<td>
<span class="STYLE1"><%=s2%></span>
</td>
</tr>
<tr>
<td>
<span class="STYLE1"></br> 确认密码</span>
</td>
<td>
<span class="STYLE1"><%=s3%></span>
</td>
</tr>
<tr>
<td>
<span class="STYLE1"></br> 姓名</span>
</td>
<td>
<span class="STYLE1"><%=s4%></span>
</td>
</tr>
<tr>
<td>
<span class="STYLE1"></br> 专业</span>
</td>
<td>
<span class="STYLE1"><%=s5%> </span>
</td>
</tr>
<tr>
<td>
<span class="STYLE1"></br> 班级</span>
</td>
<td>
<span class="STYLE1"><%=s6%></span>
</td>
</tr>
<tr>
<td>
<span class="STYLE1"></br> 性别 </span>
</td>
<td>
<span class="STYLE1"><%=s7%> </span>
</td>
</tr>
<tr>
<td>
<span class="STYLE1"></br> email</span>
</td>
<td>
<span class="STYLE1"><%=s8%> </br> </span>
</td>
</tr>
<tr>
<td>
下拉菜单主要是专业,还有单选按钮性别那里也是出现乱码,email的位置都是出现null。
request.setCharacterEncoding("utf-8");
还得写个服务器响应请求时的乱码处理
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
必须紧接着请求处理下面写 参考技术A //jsp页面头部设置成
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>追问
我的文件开头就是这一句,还是出现乱码
追答要不你把这request.setCharacterEncoding("utf-8");注释的掉看看呢?
如果还是不行的话,那么就在注释掉那一句的基础之上,然后用下面的方式来转换下编码(这种方式使用比较多):
s1= new String(s1.getBytes("iso-8859-1"), "UTF-8");
验证下拉菜单的当前选择
【中文标题】验证下拉菜单的当前选择【英文标题】:Verifying current selection of a dropdown menu 【发布时间】:2015-02-06 11:48:32 【问题描述】:使用 Selenium Webdriver (Java)
当用户在另一个会话中返回该页面时,我需要验证从下拉菜单中选择的值是否已保存。
下拉菜单很简单,它只是改变搜索后每页显示的记录数。
值是 5、10、25、50 和 100。
使用 getText() 只返回数组中的值。我需要验证如果用户选择了 25,那么在返回此特定页面时该值是否相同。简单的断言语句在这里不起作用,因为值“25”可以出现在其他字段中。
我也尝试过 Select 的各种用法,但都没有成功。
如果有任何建议,我将不胜感激。如果我遗漏了任何关键信息,请随时指出,我会更新帖子。
【问题讨论】:
【参考方案1】:-- 这将在下拉列表中给出选定的选项
Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));
WebElement option = select.getFirstSelectedOption()
String SelectedText = option.getText();
【讨论】:
【参考方案2】:你需要使用Select
类
IWebElement selectElement = driver.FindElement(By.Id("id"));
SelectElement selectedValue = new SelectElement(selectElement);
string selectedText = selectedValue.SelectedOption.Text;
我是用 C# 编写的。但是Java也相当接近。见this
编辑:
根据 api 文档,您应该使用 getFirstSelectedOption().getText()
而不是 SelectedOption.Text;
【讨论】:
【参考方案3】:查看following answer
Select select = new Select(driver.findElement(By.xpath("//path_to_drop_down")));
WebElement option = select.getFirstSelectedOption()
【讨论】:
感谢您的反馈。我按照你的建议做了,它做了我需要的。选择 select = new Select(driver.findElement(By.xpath("//*[@id='listingDetailJqGrid_toppager_center']/table/tbody/tr/td[8]/select"))); WebElement option = select.getFirstSelectedOption();现在它返回实际的元素属性。所选选项的索引为:[[[[FirefoxDriver:firefox on WINDOWS (4a0c1158-004e-4a48-843e-d2952e4af4ff)] -> xpath: //*[@id='listingDetailJqGrid_toppager_center']/table/tbody/tr /td[8]/select]] -> tag name: option] 我期待 25 或至少它的索引位置。 @JohnMcGrath 您需要使用select.getFirstSelectedOption( ).getText( );
来获取文本
感谢您的帮助。除了基本断言之外,很久没有这样做了。现在我被要求提供更详细的测试,我没有很多经验。这正是我所需要的。非常感谢,Saifur。以上是关于在java中的下拉菜单选择后点击提交,在另一个页面接受到的是乱码,是啥原因?现在贴主要的代码求教的主要内容,如果未能解决你的问题,请参考以下文章