解决request.getParameter取值后的if判断为NULL的问题

目录
  • request.getParameter取值后if判断为NULL
    • 开始时,用语句判断
    • 查明原因
  • servlet中request.getParameter得到null的几个可能
    • 可能性一
    • 可能性二
    • 可能性三
    • 可能性四

request.getParameter取值后if判断为NULL

以下为我程序的一部分,Auto_space_time_ok.jsp文件从Auto_space_time.jsp获取的值代码,此处博主需要做一个判断,当danwei 等于“学校”字符串时,将 zhuangtai的值赋值给zhengzhuang

开始时,用语句判断

if(danwei = "学校") zhengzhuang = zhuangtai;

结果获取不到值,输出语句为null。

System.out.print(zhengzhuang);

将判断语句更改为

if( "学校".equals(danwei)) zhengzhuang = zhuangtai;

方可解决问题。

查明原因

此处我们比较的是数值,基本数据类型,即原始数据类型。byte,short,char,int,long,float,double,boolean,他们之间比较数值时,可用直接用(==),而作为String,Integer,Date 这些复合型数据类型(类),比较数值时用.equals,此时(==)比较的是地址。

servlet中request.getParameter得到null的几个可能

本文针对的是jsp中form表单提交后servlet获取到null的情况

可能性一

jsp中需要输入的input标签中没设name属性值

正确例如:

<input  name="password" value="${user.password}" class="textinput" />

因为表单提交后,如果想用servlet中request.Parameter()来获取值,那么配套的是input中的name的值而不是id的

value对于这有没有都是可以的。

可能性二

form中的action属性跟Webservlet中的名不一致

可能性三

form表单的提交方式应该是post而不是get(method属性的值)

正确例如:

<form action="${pageContext.request.contextPath}/Modify" method="post" id="modifyForm">

一般存在于servlet文件的开头几行的:

@WebServlet("/Modify")

可能性四

负责表单提交的按钮的问题

众所周知(狗头保命),当你需要提交一份表单,你同时还需要一个“按钮”

可能也有不用按钮的,但是我目前所写的都大抵是需要的。

当你无法使用input的submit提交按钮而是别的东西例如一个超链接时,你若是在超链接的href里写了和form的action中一样的内容,那恭喜,你大概率就会得到一个null。

像这样:

<form action="${pageContext.request.contextPath}/Modify" method="post" id="modifyForm">
<a href="${pageContext.request.contextPath}/ModifyUser?id=${user.id}" rel="external nofollow"  >

这其实也是我所遇到的问题,我是这样解决的

<script>
function modify(){
    document.getElementById("modifyForm").submit();
}
</script>
<a href="#" rel="external nofollow"  onclick="modify()">

也就是写了个js方法并在a中onclick调用,构成当点击这个超链接时提交表单的功能。form不动。然后便解决了。。

最近跟着上课做了个项目,其中出现了上述问题,虽然不是个大问题,但是花费了较长时间解决,故写此文,希望对你有所帮助。

若你没有在这里找到解决方法,再去耐心的检查代码,可能就是哪个地方粗心写错了罢了;不要放弃,不能让如此小问题这个成为你以后的一道坎。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • jsp request.getParameter() 和request.getAttribute()方法区别详解

    getParameter 是用来接受用post个get方法传递过来的参数的. getAttribute 必须先setAttribute. (1)request.getParameter() 取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段. (2)request.getParameter() 方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求

  • request.getParameter()取值为null的解决方法

    原因是:我只设置了id属性 而在JSP页面使用javascript的时候用ID属性,但是在后台通过Request取值的时候用的是name属性.问题就处在这里.

  • 解决request.getParameter取值后的if判断为NULL的问题

    目录 request.getParameter取值后if判断为NULL 开始时,用语句判断 查明原因 servlet中request.getParameter得到null的几个可能 可能性一 可能性二 可能性三 可能性四 request.getParameter取值后if判断为NULL 以下为我程序的一部分,Auto_space_time_ok.jsp文件从Auto_space_time.jsp获取的值代码,此处博主需要做一个判断,当danwei 等于“学校”字符串时,将 zhuangtai的值

  • JavaScript中${pageContext.request.contextPath}取值问题及解决方案

    在JSP里取${pageContext.request.contextPath},方式一是可以正常取到,但方式二却取到的是 字符"${pageContext.request.contextPath}" 方式一: <script type="text/JavaScript"> var t = "${pageContext.request.contextPath}"; <script> 方式二: <script src=

  • JSP用过滤器解决request getParameter中文乱码问题

    (1)客户端的数据一般是通过HTTP GET/POST方式提交给服务器,在服务器端用request.getParameter()读取参数时,很容易出现中文乱码现象. (2)用过滤器解决request中文乱码问题. (3)代码如下: package my; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ChineseFilter implements Filter { //定义

  • 解决使用mybatis取值,字段赋值错误的问题

    目录 使用mybatis取值,字段赋值错误 mybatis映射赋值失败 错误输出 错误造成原因 解决方法 使用mybatis取值,字段赋值错误 我在读取数据库的表信息时,出现了不同字段取值对应不上的情况,有些字段的赋值是错位置的, <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap"> BaseResult

  • layui富文本编辑器前端无法取值的解决方法

    首先,需要简单说下layui这个框架,个人觉得属于那种比较好用的框架,包括他的极简流畅的弹框,很适合那种主要写后端的程序员和快速开发的团队 本期主要讲的是layui富文本编辑器这个东西,他的模式是在某个textarea的基础上建立了一个富文本编辑器,也就是说你填写在富文本编辑器的值其实是放在编辑器里面的,并没有放在之前的textarea中,你获取textarea的值的时候需要先把富文本编辑器的值同步到之前的textarea中,然后才能通过textarea获取对应的值 主要代码如下: 下图是通过浏

  • java request.getParameter中文乱码解决方法

    今天浏览项目时候,遇到一个问题,页面用${requestScope.参数名 }获取的值是乱码,然后搜了一下,最后说是编码的问题,附上查找的结果: 在Java 开发中,如果框架搭建的不完善或者初学者在学习过程中,出现中文乱码是经常的事儿(哈.谁让发明java语言的不是中国人呢) 今天跟大家分享几个解决java Web开发中,request.getParameter()获取URL中文参数乱码的解决办法 解决问题,先要研究问题,URL传中文参数为什么会出现乱码? 原因:Http请求传输时将url以IS

  • SelecT下拉框选中和取值的解决方法

    Select下拉框的问题,想在选择一个选项后,前台显示做出变动,并且知道选择的是第几个选项. 这个很好解决: 如下: <div class="page-header"> <div class="form-horizontal"> <div class="control-label col-lg-0"> </div> <div class="col-lg-2"> <

  • 解决vue attr取不到属性值的问题

    js: $(document).ready(function() { $.get("/account/authGroupInfo",{id:groupId}, function(data) { var arr = data.data.rules.split(","); console.log(arr); $.get("/account/allRule",{}, function(result) { ruleList.options = resul

  • Request与Session的存值取值操作

    Request与Session的存值取值 request域的存值: request可以直接set进去 request.setAttribute("request", value); request域的取值有两种方式: "${request}" ------------ "${requestScope.request}" 或者想获取key值中某一个valueBean对象 "${request.name}" session域的存值

随机推荐