Java 为什么过滤查询没有JSON输出?
我有一些问题,比如如果我在DAO中修改或过滤查询,那么JSON结果就不会出现,否则它就会工作。但是我需要过滤查询。详情如下: 表详细信息:地址(地址ID、道路、州、代码) 实体模型(Address.java):Java 为什么过滤查询没有JSON输出?,java,json,hibernate,jsp,struts2,Java,Json,Hibernate,Jsp,Struts2,我有一些问题,比如如果我在DAO中修改或过滤查询,那么JSON结果就不会出现,否则它就会工作。但是我需要过滤查询。详情如下: 表详细信息:地址(地址ID、道路、州、代码) 实体模型(Address.java): @Entity public class Address(){ @Id int addressID; String code; //getter + setter methods } public class JSONData exten
@Entity
public class Address(){
@Id
int addressID;
String code;
//getter + setter methods
}
public class JSONData extends ActionSupport{
private List<Address> address;
//getter, setter
public String jsonFormatDate() {
AddressDAO dao = new AddressDAO();
address = dao.listOfAllAddresses();
return SUCCESS;
}
}
public class AddressDAO{
public List<Address> listOfAllAddresses() {
.....
List list = s.createQuery("from Address").list();
.....
return list;
}
}
我只需要addressID
和code
,只有这两个字段。所以,我只映射了这两个字段,不需要其他字段
动作类(JSONData.java):
@Entity
public class Address(){
@Id
int addressID;
String code;
//getter + setter methods
}
public class JSONData extends ActionSupport{
private List<Address> address;
//getter, setter
public String jsonFormatDate() {
AddressDAO dao = new AddressDAO();
address = dao.listOfAllAddresses();
return SUCCESS;
}
}
public class AddressDAO{
public List<Address> listOfAllAddresses() {
.....
List list = s.createQuery("from Address").list();
.....
return list;
}
}
公共类JSONData扩展了ActionSupport{
私人名单地址;
//盖特,塞特
公共字符串jsonFormatDate(){
AddressDAO=新的AddressDAO();
address=dao.listofalladdress();
回归成功;
}
}
DAO类(AddressDAO.java):
@Entity
public class Address(){
@Id
int addressID;
String code;
//getter + setter methods
}
public class JSONData extends ActionSupport{
private List<Address> address;
//getter, setter
public String jsonFormatDate() {
AddressDAO dao = new AddressDAO();
address = dao.listOfAllAddresses();
return SUCCESS;
}
}
public class AddressDAO{
public List<Address> listOfAllAddresses() {
.....
List list = s.createQuery("from Address").list();
.....
return list;
}
}
公共类地址dao{
AllAddress()的公共列表列表{
.....
List List=s.createQuery(“来自地址”).List();
.....
退货清单;
}
}
如果我使用查询“from Address”
,那么JSON输出是成功的,我可以轻松地使用该结果来呈现JSP页面
但是如果我修改查询和过滤器,比如“选择a.addressID,a.code from Address a”
,那么就没有JSON输出。此外,如果我也使用where
子句,那么就没有JSON输出。如果我运行这个表单DAO层,查询将执行正确的输出。但不是来自JSON
使用一些过滤规则获取JSON输出需要包括哪些内容。您可以在查询中使用
where
子句根据条件过滤行。比如说
Query q = s.createQuery("from Address as a where a.code = ?");
q.setParameter(0, value);
List list = q.list();
我尝试使用类似“从地址a中选择a.addressID”的查询。但是没有JSON输出。但是,如果我尝试使用DAO类中的控制台模式,同样的查询也会起作用。对于JSON输出,您应该返回一个
JSON
结果。看答案,我试过那个答案。但我还是很困惑。在struts.xml中,我将其配置为“”。因此,我期望结果通过字段“address”进入Action类。但它只在JSON结果中提供主键字段的值。我没有使用查询“Selecta.addressID fromAddressA”来获取adressID值,所以,我实际上需要在哪里更改?