我已经尝试过我能找到的所有东西,如果有人能够帮助我,我会永远感激(并且在我的时间里更加自由).
基本上,我在Tomcat 7.0中有错误(在Eclipse中运行并通过startup.bat),一旦我的动态Web应用程序开始访问数据,就会出现错误:
Cannot create JDBC driver of class '' for connect URL 'null'
java.lang.NullPointerException
at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:507)
at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:476)
at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
Run Code Online (Sandbox Code Playgroud)
我的tomcat\lib目录中有sqljdbc4.jar文件.我也试过把它放在我的WEB-INF/lib,甚至我的JDK lib目录中.我认为sqljdbc.jar不会起作用,因为它适用于较旧的JDK/JRE安装而不是我的.
我听说context.xml和web.xml文件对于实现这一点至关重要.
web.xml片段:
<resource-ref>
<description>LBI DB Connection</description>
<res-ref-name>jdbc/LBIDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<resource-ref>
<description>OR DB Connection</description>
<res-ref-name>jdbc/ORDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)
的context.xml
<Context>
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/LBIDB" auth="Container"
type="javax.sql.DataSource" username="***" password="***" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver:localhost;DatabaseName=YYBackOffice;SelectMethod=cursor;"
maxActive="8" maxIdle="4"/>
<Resource name="jdbc/ORDB" auth="Container"
type="javax.sql.DataSource" username="***" password="***" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver:localhost;DatabaseName=XXBackOffice;SelectMethod=cursor;"
maxActive="8" maxIdle="4"/>
Run Code Online (Sandbox Code Playgroud)
Context选项卡最终会有一个结束选项卡.
请帮忙!如果您需要更多信息,请告诉我.另外,我不确定哪个context.xml应该被修改,Tomcat目录中有2个,/ conf文件夹中有一个,webapps/appname/META-INF文件夹中有一个.对不起,如果听起来我有点像菜鸟,那是因为我!
另外,我已经看到了context.xml的url ="..."部分的许多不同示例,其中一些包括端口号.我已经尝试了几个在线的东西,但似乎没有任何工作(在网上没有任何帮助是我确切的数据环境,我认为这个应用程序在给定时间查询两个不同的DB是具有挑战性的).
思考?
我有一个相当基本的,但令人沮丧的问题,基本上是我一直在试图迫使输入领域表现得更像文本输入类型(如果他们不正确不正确数量的条目,比如"0..7"截断为"0"并且让JS表单验证和后端验证完成它的工作.但是,虽然我想让用户在字段中输入他们想要的任何内容(输入类型="文本"),但我想要显示全键盘键盘.
原版的:
<input type="number" name="test" class="answers" id="mileage" value="0.0" maxlength=5 />
Run Code Online (Sandbox Code Playgroud)
尝试修复:
适用于iPad,但不适用于iPod,因为iPod显示紧凑的数字键盘没有小数点:
<input type="text" name="test" class="answers" id="mileage" value="0.0" maxlength=5 pattern="\d*"/>
Run Code Online (Sandbox Code Playgroud)
在iPod上不起作用,因为它显示全文键盘,但不默认为带有小数的全键盘的"数字侧":
<input type="text" name="test" class="answers" id="mileage" value="0.0" maxlength=5 pattern="\d+(\.\d*)?"/>
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?无论是防止移动Safari浏览器从修正输入号码类型(数字类型显示在iPod和iPad上正确的键盘,但已建成的修正上田当键盘隐藏),或迫使键盘是全面的iPod数侧键盘?
仅供参考:这听起来与我的问题非常相似,但我可能需要一个不同的解决方案.听起来他们希望默认情况下显示"完整"数字键盘,但是当输入其他字符时Safari没有自动编码.
我有一个基于Grid.MVC的列表,它允许我创建一个可排序,可过滤的分页列表.
问题是,我似乎无法在Grid.MVC的文档中找到任何内容,特别是输出已经过滤的"计数".我想你可能需要一个客户端解决方案,通过潜在的一些jQuery代码,但我希望也许有更容易的东西.
@using GridMvc.Html
@model IEnumerable<Sample.Cases>
@{
ViewBag.Title = "Case Browse List";
}
<h2>Case Browse List</h2>
<p>
@Html.ActionLink("Add New Participant", "Create")
</p>
<div>
@Html.Grid(Model).Columns(columns =>
{
columns.Add().Encoded(false).Sanitized(false).SetWidth(30).RenderValueAs(model => @<b>@Html.ActionLink("Select", "Details", new { id = model.ID })</b>);
columns.Add(model => model.ID).Titled("ID");
columns.Add(model => model.FirstName).Titled("First Name");
columns.Add(model => model.MiddleName).Titled("Middle Name");
columns.Add(model => model.LastName).Titled("LastName");
columns.Add(model => model.LKPSuffixes.SuffixDescription).Titled("Suffix");
columns.Add(model => model.LKPCaseStatuses.CaseStatusDescription).Titled("Case Status");
columns.Add(model => model.CaseStatusDate).Titled("Case Status Date");
}).WithPaging(10).Sortable(true).Filterable(true).WithMultipleFilters()
</div>
Run Code Online (Sandbox Code Playgroud)
以上是我的看法,它很简单,但我基本上只需要在这个网格下面有一个页脚,说明我们总共有多少结果.这是可过滤和分页的,因此它应该获得所有记录的计数,而不仅仅是显示的10个(.WithPaging(10))或没有按列中的任何内容过滤的总数.
Grid.MVC在这里有一个非常类似的示例项目:http://gridmvc.azurewebsites.net/?grid-page = 3
编辑 - 理想情况下,页脚可能会说"显示57个条目中的1到10个",或者如果不可能,即使只是总条目也可以满足我们的要求.
在他们的GitHub中读取一些代码 - 看起来有一些显示或总行数(过滤后)的属性,所以我觉得必须有一些内置的方法来做到这一点,只是不确定如何.
https://github.com/leniel/Grid.Mvc/blob/master/GridMvc/IGrid.cs
这可能是一个非常简单的问题,但实际上我没有看到很多搜索结果.
我在表单中有一个非常基本的提交按钮,它接受一些用户输入,并在服务器的临时目录中生成可下载的文件,然后提示用户下载此文件,然后在提交时禁用该文件:
<form action="Home" method="post" onsubmit="Submit.disabled = true; return true;">
...
<input type="submit" name="Submit" value="Submit" id="Submit" />
Run Code Online (Sandbox Code Playgroud)
我们需要在页面创建文件时禁用它几秒钟,然后提示用户下载它.创建文件后,它会在SelectionServlet.java中返回以下响应,以便浏览器可以下载此生成的文件,例如:
if (Export.equals("PDF")){
response.setContentType(".pdf");
response.setHeader("Content-disposition", "attachment; filename="+Constants.FILE_NAME+".pdf");
File dlFile = new File(Constants.FILE_LOCATION+".pdf");
// This should send the file to browser
OutputStream outStream = response.getOutputStream();
FileInputStream in = new FileInputStream(dlFile);
byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > 0){
outStream.write(buffer, 0, length);
}
in.close();
outStream.flush();
Export="HTML";
}
Run Code Online (Sandbox Code Playgroud)
准备好下载文件后,我想重新启用"提交"按钮,以便用户可以重新使用他们放入的表单数据(没有进行页面重定向,因为用户基本上只选择了什么标准进入他们正在构建的文件,以及它的文件类型,Submit按钮最终将我们带到一个连接到源的java Web连接,并将各种文件类型构建到服务器的temp目录中,以供用户下载) .
我在Chrome中玩过,我实际上可以在提交按钮上删除已禁用的属性,然后再次单击该按钮但使用不同的条件并获得不同的结果.什么代码实际上可以做到这一点,我不确定.
java ×2
javascript ×2
asp.net-mvc ×1
c# ×1
download ×1
forms ×1
grid.mvc ×1
html ×1
ios ×1
jdbc ×1
jquery ×1
servlets ×1
sql ×1
tomcat ×1
validation ×1