-1

网址:
http ://www.xxx.com/getUser?userid=1&username=john&usersex=1

Java 类:

Class User{
     private long userId;
     private String userName;
     private int userSex;

     // get and set methods
     ...
     //constructos
     User(long userId, String userName, int userSex){
          this.userId = userId;
          this.userName = userName;
          this.userSex = userSex;
     }
}

如何将此 url 转换为 User 对象?对于此 url,我想获取 User user = new User(1,"john",1)。并且有任何 java 框架吗?

4

7 回答 7

1

不。只需为此使用子字符串,并在您的对象中设置

于 2012-08-21T06:52:01.280 回答
0

尝试使用 Apache HttpComponents。我可以帮助您读取 URL 并将其解析为单个组件,例如

  • 被调用页面
  • 值作为命名值对的参数列表

链接: Apache HttpComponents

您可以使用给出的不同示例并根据您的目的进行调整。

于 2012-08-21T07:09:42.447 回答
0

使用 RestEasy 怎么样?
我以前没有使用过它,但是基于一些示例似乎真的很简单。查看可能的实现:

@GET
@Path("getUser") //example: "/getUser?userid=1&username=john&usersex=1"
@Produces("application/json")
public User getUser(@QueryParam("userid") final long userId, @QueryParam("username") final String userName, @QueryParam("usersex") final int userSex) {
    User user = new User(userId, userName, userSex);
    // do what's required

    return user;
}

问题也是您希望在这里返回的输出格式。我提供了 JSON 回复的示例。

于 2012-08-21T07:18:19.467 回答
0

看看 Apache Commons BeanUtils。

于 2012-08-21T06:57:17.877 回答
0
  • 您可以使用任何 MVC 框架,例如Struts每个 HTML 表单都有一个 Java 支持 bean。
  • 如果你觉得 MVC 很重,你可以使用 Java Reflections API.
于 2012-08-21T06:59:35.527 回答
0

我认为这没有java框架。由于解决方案非常简单,您可以自己实现它。

于 2012-08-21T06:56:17.567 回答
0

这很简单,不需要任何框架。见下文:

公共类TestClass {

    public static void main (String[] args) throws Exception {
        URL url = new URL("http://www.xxx.com/getUser?userid=1&username=john%20doe&usersex=1");
        String q = url.getQuery();
            User user = new User();
        for (String token : q.split("&")) {
            if (token.startsWith("userid")) {
                int index = token.indexOf('=');
                if (index >= 0 && index <token.length()-1) {
                    user.setUserId(Long.parseLong(token.substring(index+1)));
                }
            }
            if (token.startsWith("username")) {
                int index = token.indexOf('=');
                if (index >= 0 && index <token.length()-1) {
                    user.setUserName(java.net.URLDecoder.decode(token.substring(index+1)));
                }
            }
            if (token.startsWith("usersex")) {
                int index = token.indexOf('=');
                if (index >= 0 && index <token.length()-1) {
                    user.setUserSex(Integer.parseInt(token.substring(index+1)));
                }
            }
        }
            System.out.println(user.toString());
    }

}

class User {
     private long userId;
     private String userName;
     private int userSex;

     //constructos
     User(long userId, String userName, int userSex){
          this.userId = userId;
          this.userName = userName;
          this.userSex = userSex;
     }    

    User() {
          this.userId = -1;
          this.userName = "undefined";
          this.userSex = -1;
    }

    @Override
    public String toString() {
        return String.format("id: %d; name: %s, sex: %d", userId, userName, userSex);
    }

    /**
     * @return the userId
     */
    public long getUserId() {
        return userId;
    }

    /**
     * @param userId the userId to set
     */
    public void setUserId(long userId) {
        this.userId = userId;
    }

    /**
     * @return the userName
     */
    public String getUserName() {
        return userName;
    }

    /**
     * @param userName the userName to set
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * @return the userSex
     */
    public int getUserSex() {
        return userSex;
    }

    /**
     * @param userSex the userSex to set
     */
    public void setUserSex(int userSex) {
        this.userSex = userSex;
    }
}
于 2012-08-21T07:36:43.723 回答