
修改代码如下:
function mysubmit()
{
var shiliname=new Array();
shiliname[0]=documentgetElementById("a")value;
shiliname[1]=documentgetElementById("b")value;//你的这句多了个s
alert("第一个数"+shiliname[0]+"第二个数"+shiliname[1]);//前台显示用alert
//windowreturnValue=shilinamejoin(",");
//windowclose();
}
你写的action里有问题啊
npsetProgramId(npgetProgramId());
npsetProgramName(npgetProgramName());
npsetProject1(npgetProject1());
npsetProject2(npgetProject2());
这怎么能获取到传的值啊。把它改成
npsetProgramId(thisgetProgramId());
npsetProgramName(thisgetProgramName());
npsetProject1(thisgetProject1());
npsetProject2(thisgetProject2());
需要定义一个变量,然后在添加set,get方法。像下面那样
private String ProgramId;
public String getProgramId(){
return ProgramId ;}
public void setProgramId(String ProgramId){
thisProgramId=ProgramId;
}
其他类似,这里我就不写了,很简单的。
像你那样是获取不到值的
首先了解是什么是 <base href="">
<base href="value"> 为页面上所有相对 URL 规定基准 URL:
<head>
<base href=">
最近在使用rxtx编写串口程序,我也遇到这个问题。但奇怪之处在于,在eclipse中通过引入RXTXcommjar包和指定其native lib运行并无问题。当把工程export为jar包时,直接运行jar包则出现了程序死掉的情况,后定位到在执行rxtx setserialportparams时程序无法往下进行。在command窗口运行jar发现,窗口出现了如下提示:
WARNING: RXTX Version mismatch
Jar version = RXTX-22pre1
native lib Version = RXTX-21-7pre16
而在eclipse中运行并没有出现该提示。初步判断应该是RXTXcommjar包与加载的dll不匹配。通过将正确版本的dll覆盖原dll,始终出现上述问题,不明白为什么无法加载新的dll版本,好像系统曾经加载过dll后就不再重新加载dll。
想到通过重启电脑,是不是就可以了。但仍然没有效果。。。
既然系统不能加载我想要的dll,那我在程序中自己加载,不知道可不可行。试着在程序的开始加入了这个程序:
void loadrxtxdll(){
String basePath = thisgetClass()getProtectionDomain()getCodeSource()getLocation()getPath();
try {
basePath = URLDecoderdecode(basePath,"utf-8");
} catch (UnsupportedEncodingException e) {
eprintStackTrace();
}
Systemoutprintln("basePaht:"+basePath);
if(basePathendsWith("jar")){
basePath = basePathsubstring(0,basePathlastIndexOf("/")+1);
}
File f = new File(basePath);
basePath = fgetAbsolutePath();
Systemoutprintln(basePath);
Systemload(basePath + "\\rxtxSerialdll");
}
上述程序是加载与程序jar包同路径的rxtxSerialdll,将dll拷贝到jar同路径下,运行jar包,成功了!
由此可见,该方法有效。但不明白的是,为何程序不能自动加载新的dll。
《%@include 和<jsp:include >有区别的,
include与jsp:include区别jsp中include[1]有两种形式,分别是
<%@ include file=” ”%>
<jsp:include page=” ” flush=”true”/>
前者是指令元素、后者是行为元素。通常当应用程序中所有的页面的某些部分(例如标题、页脚和导航栏)都相同的时候,就可以考虑用include。<%@ include file=” ”%>,jsp的include指令元素读入指定页面的内容。并把这些内容和原来的页面融合到一起。(这个过程是在翻译阶段:也就是jsp被转化成servlet的阶段进行的。)
include与jsp:include主要有两个方面的不同;
一:执行时间上:
<%@ include file=”relativeURI”%> 是在翻译阶段执行
<jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行
二:引入内容的不同:
<%@ include file=”relativeURI”%>
引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起
<jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本
另外在两种用法中file和page属性都被解释为一个相对的URI如果它以斜杠开头,那么它就是一个环境相关的路径将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释
你的传值方法用反了,你上面的<form>表单里面写的方法是post但是你在后台Servlet处理的时候用的是doGet方法处理,是不可能接受到数据的。做这个上传东西的话,需要导入一些外包,像cosFir这种包来实现比较好一点。
如果只是实现提交功能的话,首先思路要明确,你表单的内容提交过来,要直接获取的话用你的方法就可以了,但是注意传值的方法,一般用post传值,因为get方法传值太小,容易丢失数据。还有就是你传过来了在servlet处理的时候最后弄个标记来处理,这样可以利用if分支来处理多个页面出来的的请求,当然servlet也只是初步的处理,你最后还得调用javabean来处理,就是你要用一个业务类来专门处理你的sql语句接串,然后提交数据可处理。看一下我写的一个登录的小程序:
登录页面:indexjsp
<%@ page language="java" import="javautil" pageEncoding="GBK"%>
<%
String path = requestgetContextPath();
String basePath = requestgetScheme()+"://"+requestgetServerName()+":"+requestgetServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'indexjsp' starting page</title>
<meta >
不是啊,直接echo base_url(); 在视图里面用base_url()就可以获得,如要加载js和css,img。需要将js,css文件都方在与system application同级目录下,然后页面里面用base_url()+目录地址,如果在js文件里面需要用到post或者load某个文件,可以在hearder或者php页面开始用js创建一个对象字面量,例如:var my_url={ base_url:''};这样你的js文件就可以用my_urlbase_url获取base url了
以上就是关于struts2表单提交,然后由javascript获得不到值,求高手帮助。全部的内容,包括:struts2表单提交,然后由javascript获得不到值,求高手帮助。、struts2 后台获取前台传入的值获取不到,请帮忙看看哪里错了、如何理解<base href="<%=basePath%>等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)