小编mas*_*san的帖子

JAX-RS - 如何将JSON和HTTP状态代码一起返回?

我正在编写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状态代码不能用于此类事情?

java rest jax-rs http-status-codes

237
推荐指数
8
解决办法
45万
查看次数

如何在CSS选择器中排除特定的类名?

当用户鼠标悬停其类名为的元素时,我正在尝试应用背景颜色"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)

html css css-selectors

123
推荐指数
3
解决办法
13万
查看次数

如何将日期字符串解析为Date?

如何将下面的日期字符串解析为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)

java format date

114
推荐指数
4
解决办法
33万
查看次数

如何在JavaScript中使用ISO 8601格式化带有时区偏移的日期?

目标:找到local timeUTC 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文档中找到答案.提前致谢.

javascript timezone date-formatting

90
推荐指数
7
解决办法
12万
查看次数

Apache POI Excel - 如何配置要扩展的列?

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 …

java excel expand apache-poi

88
推荐指数
7
解决办法
18万
查看次数

为什么Java Calendar设置(int year,int month,int date)没有返回正确的日期?

根据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日???

java calendar

54
推荐指数
3
解决办法
14万
查看次数

为什么使用JPA而不是直接在Java文件上编写SQL查询(即直接写入JDBC)?

我一直在阅读几篇文章是什么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不可读对我来说不是很有吸引力..

如果您需要更多说明,请告诉我,我是这个主题的新手,并希望听到一些意见.

java database orm jpa

51
推荐指数
7
解决办法
5万
查看次数

如何在JAX-RS中设置响应头,以便用户看到Excel的下载弹出窗口?

我编写了使用REST JAX-RS生成Excel文件的代码,并确认生成的Excel文件位于GlassFish服务器目录中.

但我的目标是当用户点击按钮(生成Excel .xls)时,我想要下载弹出窗口,询问用户是否保存或打开.xls文件,就像任何其他Web服务用于下载任何类型的文件一样.

根据我的搜索,步骤是:

  1. 生成Excel .xls(DONE)

  2. 将excel写入流

  3. 在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()等来添加标头.

如果没有示例代码,我无法确切地说明这意味着什么.

java rest header jax-rs glassfish-3

47
推荐指数
2
解决办法
10万
查看次数

如何用嵌入式id编写JPQL SELECT?

我正在使用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)

java jpa composite-key jpql

41
推荐指数
2
解决办法
5万
查看次数

发生错误时如何防止批处理窗口关闭?

我正在尝试编写批处理脚本来创建一个文件夹(如果它尚不存在).跟进在线示例,下面是我的脚本.

问题是; 第一个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)

batch-file

38
推荐指数
3
解决办法
3万
查看次数