如何将HTML中下拉菜单和文本区域的值传递到java中的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将HTML中下拉菜单和文本区域的值传递到java中的相关的知识,希望对你有一定的参考价值。

想要做个管理系统。。然后在html中有个标签跟文本区域。。。通过页面跳转传递到java中的某个变量、、、、想知道HTML中具体的语句。。最好包括java中如何接受传递过来的值。。。。。。
一定要用到javascript吗?我只学了java,不会javascript.....
我原本是想要做一个HTML的界面。。然后选择按钮,,通过页面跳转到另一个嵌有java applet的界面里。。。然后就是说,在HTML的那个界面里的下拉菜单中的值传递给java applet中,在applet中处理完,再存储,或者对数据库进行操作。然后再将返回的结果通过applet在浏览器中显示出来。。。
关于是不是潮流,这个暂时不是什么问题。只是一个课题。。个人比较倾向于通过这种方法实现这个管理系统而已,虽然说如果全都用applet也可以实现。。。

html可以通过使用表单将数据传到指定的位置,java中也可以通过使用Servlet(也就是简单的java类继承HttpServlet,重写doGet,doPost方法)。
具体事例如下:
html页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Demo</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<form action="demoServlet" method="post">
<input type="text" name="name"/>
<select name="xiala">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" value="提交"/>
</form>
</body>
</html>

Servlet代码:
public class DemoServlet extends HttpServlet
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
String name = req.getParameter("name");
String xiala = req.getParameter("xiala");
System.out.println(name+","+xiala);

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
super.doGet(req, resp);



当点击提交按钮时,界面会去调用DemoServlet这个类里的doPost方法,执行对应的代码,java类通过使用getParameter根据参数名获取页面传过来的值。
参考技术A 获取下拉框选中的值的方法:
<form name="fm" action="">
<select name="city"><option>1</option>....</select>
<input type="textara" id="tt">
</form>
javascript函数处理:
function getValue()
//获取下拉列表的值
var cityObj = document.fm.city
var clen = cityObj.options.length;
var selValue = "";
for(var i=0;i<clen;i++)
if(cityObj.options[i].selected)
selValue += cityObj.options[i].value;


//获取文本框的值
var textValue = document.getElementById("tt").innerHTML;
本回答被提问者采纳
参考技术B 下面是html(jsp)里代码:
<body>
<form action="./MyServlet" method="post">
<input type="text" name="name"><br>
<select id="sel" name="select">
<option value="txt" >txt</option>
<option value="btn">btn</option>
</select><br>
<input type="submit" value="submit">
</form>
</body>
此处是提交到Servlet当然也可提交到action同理:
public class MyServlet extends HttpServlet

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException

response.setContentType("text/html");
PrintWriter out = response.getWriter();
String string=request.getParameter("name");
String string2=request.getParameter("select");
System.out.println(string);
System.out.println(string2);


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException

doGet(request, response);



在控制台:Console栏里面查看结果即可
参考技术C java中传递过来的值,不太明白,想做管理系统部用到数据库的话怎么那估计不是现在的潮流了,跳转传递java中的某个变量?也就是传递java中的某个值吧,再对这个值进行处理,然后存储到数据库中,如果想用到这个值再取出来,用jsp标签<form action=“这里是要进行数据处理的servlet或者是jsp页面”>进行处理。 参考技术D 其实我不明白你说的“传递到java中”
如果要传,就一定要用js控制的

如何让突变观察者检测文本区域的值变化?

【中文标题】如何让突变观察者检测文本区域的值变化?【英文标题】:How do you get a mutation observer to detect a value change of a textarea? 【发布时间】:2012-08-16 10:21:37 【问题描述】:

我见过变异观察者在修改doms时用于获取doms的属性,例如使用google chrome开发者工具。但是,当textarea 中的文本由于用户键入或粘贴而发生更改时,我无法找到如何调用函数。在我的代码中,当用户键入回调时,即使所有观察选项都设置为 true,也不会调用回调。这是什么代码?

【问题讨论】:

Detect when text is entered into the textarea and change it correspondingly 的可能重复项 【参考方案1】:

查看此链接Textarea onchange detection。您需要编写 onkeyup 和 onchange 函数。

顺便说一句,上面的答案不适用于输入法。我的解决方案是setInterval 来检测文本是否每 50 毫秒更改一次。

【讨论】:

感谢您的回答,但使用突变观察者的主要目的是消除依赖轮询来检测变化(来自任何原因)。听起来你在暗示突变观察者不能这样做。 Another similar link,我认为一些流行的库没有提供突变观察器。无论如何,我发现使用轮询来检测更改很容易但并不漂亮。否则,您必须考虑许多条件。 Chao Zhang 可能是指用于中文和日文输入的 IM 修饰符。我遇到了 textarea 没有触发 key* 事件的类似问题,因为 IM 修饰符正在捕获它们。只有退格键、删除键和 Enter 键冒泡。 补充一点:我的情况是 ckeditor 在使用日文输入法时没有触发“更改”事件。显然我不得不改用“key”事件,因为根据 ckeditor 关于“change”事件的文档:“由于性能原因,没有验证内容是否真的改变了。编辑器反而观察了几个通常导致的编辑操作在更改中。因此,在某些情况下,此事件可能会在没有发生更改时被触发,甚至可能会被触发两次。"【参考方案2】:

变异观察者监听 DOM 的变化。然而,表单元素的当前状态不会被 DOM 反映。

例如,在不设置 value 属性的情况下创建一个输入元素 input。在输入字段中输入文本时,input.value 会反映此文本。另一方面,input.getAttribute('value') 仍然返回 null

因此,突变观察者无法观察到表单字段状态的这种变化。

(提出的 ECMAScript 第 6 版的 Object.observe 也无济于事。尽管在最近的 Chrome 版本中可以监听宿主对象的变化,但 value 的宿主对象属性的变化em>输入上面没有被观察到。)

【讨论】:

以上是关于如何将HTML中下拉菜单和文本区域的值传递到java中的的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有ng-repeat的角度js表中使用复选框数组和文本区域/下拉列表数组?

在下拉选择中更改文本区域的值

将下拉菜单中的值传递给 Flask 模板

保存文本区域的内容

如何在 HTML 表单中“预填充”文本区域的值? [复制]

使用 jquery 显示基于所选选项的文本框