我正在编写REST Web应用程序(NetBeans 6.9,JAX-RS,TopLink Essentials)并尝试返回JSON 和 HTTP状态代码.我已准备好代码并且在从客户端调用HTTP GET方法时返回JSON.实质上:
@Path("get/id")
@GET
@Produces("application/json")
public M_?? getMachineToUpdate(@PathParam("id") String id) {
// some code to return JSON ...
return myJson;
}
Run Code Online (Sandbox Code Playgroud)
但是,我也想用JSON数据一起返回的HTTP状态代码(500,200,204,等).
我试着用HttpServletResponse:
response.sendError("error message", 500);
Run Code Online (Sandbox Code Playgroud)
但这使得浏览器认为它是"真正的"500,因此输出网页是一个常规的HTTP 500错误页面.
我想返回一个HTTP状态代码,以便我的客户端JavaScript可以根据它处理一些逻辑(例如在HTML页面上显示错误代码和消息).这是可能的还是HTTP状态代码不能用于此类事情?
当用户鼠标悬停其类名为的元素时,我正在尝试应用背景颜色"reMode_hover".
但是如果元素也有,我不想改变颜色"reMode_selected"
注意:我只能使用CSS而不是javascript,因为我在某种有限的环境中工作.
为了澄清,我的目标是在悬停而不是第二个元素上着色第一个元素.
HTML
<a href="" title="Design" class="reMode_design reMode_hover">
<span>Design</span>
</a>
<a href="" title="Design"
class="reMode_design reMode_hover reMode_selected">
<span>Design</span>
</a>
Run Code Online (Sandbox Code Playgroud)
我尝试下面希望第一个定义可行,但事实并非如此.我究竟做错了什么?
CSS
/* do not apply background-color so leave this empty */
.reMode_selected .reMode_hover:hover
{
}
.reMode_hover:hover
{
background-color: #f0ac00;
}
Run Code Online (Sandbox Code Playgroud) 如何将下面的日期字符串解析为Date对象?
String target = "Thu Sep 28 20:29:30 JST 2000";
DateFormat df = new SimpleDateFormat("E MM dd kk:mm:ss z yyyy");
Date result = df.parse(target);
Run Code Online (Sandbox Code Playgroud)
抛出异常......
java.text.ParseException: Unparseable date: "Thu Sep 28 20:29:30 JST 2000"
at java.text.DateFormat.parse(DateFormat.java:337)
Run Code Online (Sandbox Code Playgroud) 目标:找到local time并UTC time offset以下列格式构建URL.
示例URL:/ Actions/Sleep?duration = 2002-10-10T12:00:00-05:00
格式基于W3C建议:http: //www.w3.org/TR/xmlschema11-2/#dateTime
文件说:
例如,2002-10-10T12:00:00-05:00(2002年10月10日中午,中央夏令时以及美国东部标准时间)等于2002-10-10T17:00:00Z,比2002-10-10T12:00:00Z晚5个小时.
所以基于我的理解,我需要通过新的Date()找到我的本地时间,然后使用getTimezoneOffset()函数来计算差异,然后将它附加到字符串的末尾.
1.以格式获取当地时间
var local = new Date().format("yyyy-MM-ddThh:mm:ss"); //today (local time)
Run Code Online (Sandbox Code Playgroud)
产量
2013-07-02T09:00:00
Run Code Online (Sandbox Code Playgroud)
2.以小时为单位获取UTC时间偏移量
var offset = local.getTimezoneOffset() / 60;
Run Code Online (Sandbox Code Playgroud)
产量
7
Run Code Online (Sandbox Code Playgroud)
3.Construct URL(仅限时间部分)
var duration = local + "-" + offset + ":00";
Run Code Online (Sandbox Code Playgroud)
输出:
2013-07-02T09:00:00-7:00
Run Code Online (Sandbox Code Playgroud)
以上输出结果表示我的当地时间是2013/07/02 9am,与UTC的差异是7小时(UTC是比当地时间早7小时)
到目前为止它似乎工作,但如果getTimezoneOffset()返回负值如-120怎么办?
我想知道在这种情况下格式应该是什么样的,因为我无法从W3C文档中找到答案.提前致谢.
我Apache POI API用来生成excel spreadsheet输出一些数据.
我面临的问题是,在创建和打开电子表格时,不会扩展列,以便乍一看不会出现像Date格式化文本这样的长文本.
我可以双击excel中的列边框来展开或拖动边框来调整列宽,但可能有20多列,每次打开电子表格时我都无法手动执行此操作:(
我发现了(虽然可能是错误的方法)groupRow()并且setColumnGroupCollapsed()可能能够做到这一点,但没有运气.也许我错误地使用它.
示例代码段
Workbook wb = new HSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
//create sheet
Sheet sheet = wb.createSheet("masatoSheet");
//not really working yet.... :(
//set group for expand/collapse
//sheet.groupRow(0, 10); //just random fromRow toRow argument values...
//sheet.setColumnGroupCollapsed(0, true);
//create row
Row row = sheet.createRow((short)0);
//put a cell in the row and store long text data
row.createCell(0).setCellValue("Loooooooong text not to show up first");
Run Code Online (Sandbox Code Playgroud)
创建此电子表格时,"Looooooong text not to first up …
根据doc,calendar set()是:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html#set%28int,%20int,%20int%29
set(int year, int month, int date)
Sets the values for the calendar fields YEAR, MONTH, and DAY_OF_MONTH.
Run Code Online (Sandbox Code Playgroud)
码:
Calendar c1 = GregorianCalendar.getInstance();
c1.set(2000, 1, 30); //January 30th 2000
Date sDate = c1.getTime();
System.out.println(sDate);
Run Code Online (Sandbox Code Playgroud)
输出:
Wed Mar 01 19:32:21 JST 2000
Run Code Online (Sandbox Code Playgroud)
为什么不是1月30日???
我一直在阅读几篇文章是什么JPA (Java Persistent API)以及哪些供应商支持它(DataNucleus,JBoss Hibernate等)
我没有ORM(对象关系映射)的经验.
到目前为止我所做的是使用DTO和DAO编写自己的数据库类.到目前为止,我对我所拥有的内容感到高兴,但我想知道为什么人们使用JPA而不是包含SQL的Java文件.
对我来说,我觉得写DAO课程就像下面这样.
public class DAOUsers {
public void insertNewUser(DTO DtoUser) {
String query = "INSERT INTO users(username, address) " +
"VALUES(DtoUser.username , DtoUser.address)";
Executor.run(query);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经了解到JPA使用JPQL,Java持久查询语言,它对实体对象而不是直接使用db表进行操作.
我的理解(纠正我,如果我错了)是这里的实体对象和我的DTO对象一样(有点像bean吗?)
但无论如何...... JPA真正有益于在我的文件中编写纯SQL吗?看起来像使用JPA所需的注释并使SQL不可读对我来说不是很有吸引力..
如果您需要更多说明,请告诉我,我是这个主题的新手,并希望听到一些意见.
我编写了使用REST JAX-RS生成Excel文件的代码,并确认生成的Excel文件位于GlassFish服务器目录中.
但我的目标是当用户点击按钮(生成Excel .xls)时,我想要下载弹出窗口,询问用户是否保存或打开.xls文件,就像任何其他Web服务用于下载任何类型的文件一样.
根据我的搜索,步骤是:
生成Excel .xls(DONE)
将excel写入流
在JAX-RS文件中,将响应头设置为类似的,
String fileName ="Blah_Report.xls"; response.setHeader("Content-Disposition","attachment; filename ="+ fileName);
我的问题是我在JAX-RS文件中做了所有这些,而且我没有可用的HttpServletResponse对象.
根据Add Response Header到JAX-RS Webservice的答案
他说:
您可以通过Web服务中的@Context注释注入对实际HttpServletResponse的引用,并使用addHeader()等来添加标头.
如果没有示例代码,我无法确切地说明这意味着什么.
我正在使用Toplink essentials(JPA)+ GlassFish v3 + NetBean 6.9
我有一个复合主键表:
table (machine)
----------------
|PK machineId |
|PK workId |
| |
|______________|
Run Code Online (Sandbox Code Playgroud)
我为实体本身创建了两个实体类,第二个是PK类.
public class Machine {
@EmbeddedId
protected MachinePK machinePK;
//getter setters of fields..
}
public class MachinePK {
@Column(name = "machineId")
private String machineId;
@Column(name = "workId")
private String workId;
}
Run Code Online (Sandbox Code Playgroud)
现在.. 如何使用JPERE用WHERE编写SELECT子句?
这失败了.
SELECT m FROM Machine m WHERE m.machineId = 10
Run Code Online (Sandbox Code Playgroud)
http://www.mail-archive.com/users@openjpa.apache.org/msg03073.html
根据网页,添加"val"?不,它也失败了.
SELECT m FROM Machine m WHERE m.machineId.val = 10
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,错误是:
Exception Description: Error compiling the …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写批处理脚本来创建一个文件夹(如果它尚不存在).跟进在线示例,下面是我的脚本.
问题是; 第一个pause工作,然后可能是由于语法错误,窗口甚至在到达第二个之前关闭pause,所以我无法确定我的脚本的哪个部分是错误的.
任何人都可以告诉我如何防止关闭窗口,以便我可以看到窗口上有什么?
@echo off
:copy theme images over
:designer
echo copying theme images over...
pause
if not exist "%K2DIR%\K2 SmartForms Runtime\Styles\Themes\Sharepoint 2013\rich_text"
(
md "%K2DIR%\K2 SmartForms Runtime\Styles\Themes\Sharepoint 2013\rich_text333"
)
pause
Run Code Online (Sandbox Code Playgroud) java ×7
jax-rs ×2
jpa ×2
rest ×2
apache-poi ×1
batch-file ×1
calendar ×1
css ×1
database ×1
date ×1
excel ×1
expand ×1
format ×1
glassfish-3 ×1
header ×1
html ×1
javascript ×1
jpql ×1
orm ×1
timezone ×1